【问题标题】:How to get ids using values_list python [duplicate]如何使用values_list python获取ID [重复]
【发布时间】:2016-05-25 09:22:08
【问题描述】:

我有以下 django 过滤器查询:

ids = Worksheet.objects.filter(main=main_rec_id).values_list('id', flat=True)

但它返回像[5L, 6L] 这样的长值我怎样才能得到像 [5,6] 家伙这样的列表?提前致谢。

【问题讨论】:

标签: python django


【解决方案1】:

使用这个

ids = Worksheet.objects.filter(main=main_rec_id).values_list('id', flat=True)
ids = map(lambda x:int(x),ids)

ids 将是纯整数 LIST

【讨论】:

  • map(lambda x:int(x),ids)
  • @Sayse:我编辑的答案有帮助吗?
  • 它产生了操作正在寻找的输出,但它可能仍然没有必要。建议的副本已经提供了解释。
  • 当你从 db 中获取 obj 时,默认 id 为 Long,必须有我需要的显式类型转换。或者在定义模型类时提到 id=models.IntegerField(.....) 可能是可能的解决方案
  • 这可能会给你docs.python.org/library/…。如果我的帖子帮助你接受它:)
【解决方案2】:

[5L, 6L] 对用作 [5, 6] 无效,因为 5L == 5。

【讨论】:

  • 5L is 5 返回 False。 可能会产生副作用,具体取决于操作的操作。
猜你喜欢
  • 1970-01-01
  • 2012-01-26
  • 2014-07-03
  • 2020-07-07
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-31
  • 2016-10-25
相关资源
最近更新 更多