List 使用unicode索引django按日期对词典排序

List 使用unicode索引django按日期对词典排序,list,dictionary,List,Dictionary,我有一本像这样的字典 现在看起来像这样。我想迭代这两个字典,并按正确的顺序排列每个项目中的日期。我该怎么做呢?不幸的是,你不能为字典的键排序,因为dict是无序的。 但是,可以使用items将键值对转换为元组列表,然后使用sorted对列表进行排序: for elem in available: if elem[0] != 'dates': print sorted(elem[1].items()) 将打印: [('19/08', {'total': 18, 'avai

我有一本像这样的字典


现在看起来像这样。我想迭代这两个字典,并按正确的顺序排列每个项目中的日期。我该怎么做呢?

不幸的是,你不能为字典的键排序,因为dict是无序的。 但是,可以使用items将键值对转换为元组列表,然后使用sorted对列表进行排序:

for elem in available:
    if elem[0] != 'dates':
        print sorted(elem[1].items())
将打印:

[('19/08', {'total': 18, 'availability': 5, 'full': False}), ('20/08', {'total': 18, 'availability': 10, 'full': False}), ('21/08', {'total': 18, 'availability': 16, 'full': False}), ('22/08', {'total': 18, 'availability': 11, 'full': False}), ('23/08', {'total': 18, 'availability': 9, 'full': False})]
[('19/08', {'total': 32, 'availability': 32, 'full': False}), ('20/08', {'total': 32, 'availability': 29, 'full': False}), ('21/08', {'total': 32, 'availability': 29, 'full': False}), ('22/08', {'total': 32, 'availability': 30, 'full': False}), ('23/08', {'total': 32, 'availability': 31, 'full': False})]
[('19/08', {'total': 3, 'availability': 2, 'full': False}), ('20/08', {'total': 3, 'availability': 3, 'full': False}), ('21/08', {'total': 3, 'availability': 3, 'full': False}), ('22/08', {'total': 3, 'availability': 2, 'full': False}), ('23/08', {'total': 3, 'availability': 3, 'full': False})]
[('19/08', {'total': 30, 'availability': 21, 'full': False}), ('20/08', {'total': 30, 'availability': 26, 'full': False}), ('21/08', {'total': 30, 'availability': 25, 'full': False}), ('22/08', {'total': 30, 'availability': 25, 'full': False}), ('23/08', {'total': 30, 'availability': 25, 'full': False})]
[('19/08', {'total': 12, 'availability': 6, 'full': False}), ('20/08', {'total': 12, 'availability': 4, 'full': False}), ('21/08', {'total': 12, 'availability': 7, 'full': False}), ('22/08', {'total': 12, 'availability': 6, 'full': False}), ('23/08', {'total': 12, 'availability': 11, 'full': False})]

但是有没有办法把它转换成一个有序的列表或者什么的?是的,我能做到。还有,为什么available[1]有一个列表?好的,我这样做了,但是我如何对里面的子列表进行排序?有办法吗?
[('19/08', {'total': 18, 'availability': 5, 'full': False}), ('20/08', {'total': 18, 'availability': 10, 'full': False}), ('21/08', {'total': 18, 'availability': 16, 'full': False}), ('22/08', {'total': 18, 'availability': 11, 'full': False}), ('23/08', {'total': 18, 'availability': 9, 'full': False})]
[('19/08', {'total': 32, 'availability': 32, 'full': False}), ('20/08', {'total': 32, 'availability': 29, 'full': False}), ('21/08', {'total': 32, 'availability': 29, 'full': False}), ('22/08', {'total': 32, 'availability': 30, 'full': False}), ('23/08', {'total': 32, 'availability': 31, 'full': False})]
[('19/08', {'total': 3, 'availability': 2, 'full': False}), ('20/08', {'total': 3, 'availability': 3, 'full': False}), ('21/08', {'total': 3, 'availability': 3, 'full': False}), ('22/08', {'total': 3, 'availability': 2, 'full': False}), ('23/08', {'total': 3, 'availability': 3, 'full': False})]
[('19/08', {'total': 30, 'availability': 21, 'full': False}), ('20/08', {'total': 30, 'availability': 26, 'full': False}), ('21/08', {'total': 30, 'availability': 25, 'full': False}), ('22/08', {'total': 30, 'availability': 25, 'full': False}), ('23/08', {'total': 30, 'availability': 25, 'full': False})]
[('19/08', {'total': 12, 'availability': 6, 'full': False}), ('20/08', {'total': 12, 'availability': 4, 'full': False}), ('21/08', {'total': 12, 'availability': 7, 'full': False}), ('22/08', {'total': 12, 'availability': 6, 'full': False}), ('23/08', {'total': 12, 'availability': 11, 'full': False})]