Python 在django查询集中按顺序排列键
我有一个Django查询,从不同的数据库中获取一些信息,我想向前端公开这些信息:Python 在django查询集中按顺序排列键,python,django,dictionary,django-queryset,Python,Django,Dictionary,Django Queryset,我有一个Django查询,从不同的数据库中获取一些信息,我想向前端公开这些信息: specifics = PageData.objects.filter(page_id__in=page_ids).values('page_id'). \ annotate(views=Count('page_id')). \ values('views', 'page__title', 'pag
specifics = PageData.objects.filter(page_id__in=page_ids).values('page_id'). \
annotate(views=Count('page_id')). \
values('views', 'page__title', 'page__content_size')
这又给了我一个字典列表-提示是list(specifics)
:
我希望能够安排每个词典中键的顺序,这意味着我将按照要求的特定顺序提供。列表中每个元素的顺序始终相同
在Django或Python中有什么方法可以做到这一点吗?这实际上与Python有关。这是对已经回答的同一问题的交叉引用
只能获得键列表的排序表示。一种方法是使用
值\u列表
而不是值
。但是,这将返回元组列表
,而不是字典列表
,但所有元素的顺序始终相同
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')
值将始终按照Values\u list
中指定的顺序排列,而是一个元组而不是字典
[
(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 dictionary不保证顺序
您可能需要:
导入集合
OrderedDict dict子类,用于记住添加的订单条目
此处的文档:
在这里,您可以找到一个完整的示例:
希望这有帮助,,
再见 关于dicts不保证顺序这一事实有什么不清楚的?很清楚,我只是想知道不保证条件是否可以规避。也许我在解释中不清楚,我想安排钥匙的顺序,而不是排序。我需要的是字典,而不是分类表示法。我会更新我的问题。@MattiaPaterna你不能对字典排序。Python在存储值时会在内部更改键的顺序。grazie,这正是我想要的!
[
(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)
]
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`