Django QuerySet values_list返回未知字符

时间:2011-12-21 21:25:04

标签: python django list django-queryset

我正在使用django从我拥有的MySQL服务器中提取一些数据。目前我从SQL服务器中提取了整列数据(“轻量级”列)。

要执行此操作,我使用以下代码

weather = weatherdata.objects.values_list('light', flat=True)

lightdata = list(weather)

当我这样做时,lightdata列表如下所示:

[35L, 53L, 77L, 99L, 49L, 46L, 28L, 13L, 2L, 0L, 0L, 0L]  

这些值是正确的,它们只是在每个值的末尾都有一个L.如何从此列表中删除L?

3 个答案:

答案 0 :(得分:4)

您可以这样做:

l = [35L, 53L, 77L, 99L, 49L, 46L, 28L, 13L, 2L, 0L, 0L, 0L]
l = [int(item) for item in l]

此外,如果您要删除复制的项目:

l = [35L, 53L, 77L, 99L, 49L, 46L, 28L, 13L, 2L, 0L, 0L, 0L]
l = list(set(l))
l = [int(item) for item in l]

答案 1 :(得分:2)

最后的L表示它是一个很长的类型。它不会通过print语句打印,它只是告诉你这里存储的数字绝对不是整数。

如果你真的想摆脱它们,那么我想你可以做类似以下的事情:

lightdataNew = []
for num in lightdata:
    lightdataNew.append(int(num))
lightdata = lightdataNew[:] 

答案 2 :(得分:1)

L表示长整数。

>>> a = long(5)
>>> a
5L
>>> print a
5

您可以根据需要转换列表中元素的类型,但可能没有必要。

>>> b = [int(i) for i in list_of_longs]
>>> c = [str(i) for i in list_of_longs]

编辑:似乎Goin,Makoto和我都在同一时间输入答案。