Django 对象查询集

Django objects queryset

我有一个关于 Django 查询的问题。我有这样的查询:

x = Foo.objects.order_by('date').values('amount')

和这个 returns 类似于:

[{'amount': Decimal('100.2200')},{'amount': Decimal('100.2200')}....]

我想做的是获取这些小数的标准差,但我似乎无法弄清楚如何将它们从字典中获取到列表中的小数。我尝试了一个 for 语句,但它不起作用并且列表理解 returns:

[Decimal('100.2200'), Decimal('100.2300')...]

使用此代码:

x = Foo.objects.order_by('date').values('amount')
x = ([amount.values()[0] for amount in x])
print x

我做错了吗?如果我想取回信息并对其进行操作,是否应该对服务器进行 sql 查询?

基本上我想做的是根据特定的过滤器获得某个 table 中所有金额的标准偏差...

非常感谢您的帮助

首先可以通过using values_list

直接获取小数点列表
qs = Foo.objects.order_by('date').values_list('amount', flat=True)

其次,如果在浮点数上比在小数列表上更容易计算 SD,您可以这样做

qs = Foo.objects.order_by('date').values_list('amount', flat=True)
float_qs = map(float, qs)