Django:如何更改带注释查询生成的dict的键?

时间:2015-08-18 03:13:53

标签: python django orm django-queryset

我有以下查询:

cc = Comment.objects.filter(pk__in=cids).values('user_id').annotate(z=Count('user_id')).order_by('user_id')
print cc

结果目前看起来像这样:

[{'z': 1, 'user_id': 2L}, {'z': 2, 'user_id': 4L}, {'z': 2, 'user_id': 38L}]

但是,我想要获得这样的东西:

[{'user_id': 2L, 'z':1}, {'user_id': 4L,'z': 2, }, { 'user_id': 38L},'z': 2]

我知道有类似的解决方法 将valuequeryset转换为dict - >反向词典,得到上述结果。但有没有办法通过查询来解决这个问题?

1 个答案:

答案 0 :(得分:0)

Python中的

词典是无序的,你在z之前看到的只是user_id只是巧合。

如果你想要一个有序的字典,请尝试将OrderedDict用于Python2.7及更高版本。