arrange keys order in a django queryset
我有一个django查询,在这里我从不同的数据库中获取一些信息,我想将这些信息公开给前端:
1 2 3 | specifics = PageData.objects.filter(page_id__in=page_ids).values('page_id'). \ annotate(views=Count('page_id')). \ values('views', 'page__title', 'page__content_size') |
这反过来给了我一个字典列表——提示是
1 2 3 4 5 6 7 8 9 | [ {'page__content_size': 19438L, 'page__title': u'Bosch Tassimo Charmy anmeldelse. Positivt: Bryggehastighed. Negativt: Placering af vandtanken. | 96 Grader', 'views': 5}, […] {'page__content_size': 19395L, 'page__title': u'Banwood First Go Balance Bike - studiominishop.com', 'views': 1} ] |
我希望能够安排每本字典中的键的顺序,这意味着我将按要求和特定的顺序提供。对于列表中的每个元素,顺序总是相同的。
在Django或Python中有什么方法可以做到这一点吗?
你可能需要这个:
import collections
OrderedDict dict subclass that remembers the order entries were added
文档:https://docs.python.org/3/library/collections.html collections.ordereddict
您可以在这里找到一个完整的示例:
https://pymotw.com/2/collections/ordereddict.html网站
1 2 3 4 5 6 7 8 9 | d = collections.OrderedDict() d['a'] = 'A' d['b'] = 'B' d['c'] = 'C' d['d'] = 'D' d['e'] = 'E' for k, v in d.items(): print k, v` |
希望这有帮助,再见!
一种方法是使用
1 2 3 4 | specifics = PageData.objects.filter( page_id__in=page_ids).values('page_id').annotate( views=Count('page_id')).values_list( 'views', 'page__title', 'page__content_size') |
值将始终按照
1 2 3 4 5 | [ (5, u'Bosch Tassimo Charmy anmeldelse. Positivt: Bryggehastighed. Negativt: Placering af vandtanken. | 96 Grader', 19438L), […] (1, u'Banwood First Go Balance Bike - studiominishop.com', 19395L) ] |
这实际上与Python有关。这里是对已经回答的同一个问题的交叉引用。
在python中排序字典键
只能获得键列表的已排序表示形式。