Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在django查询集中按顺序排列键_Python_Django_Dictionary_Django Queryset - Fatal编程技术网

Python 在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

我有一个Django查询,从不同的数据库中获取一些信息,我想向前端公开这些信息:

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`