如何以与从角度js传递的顺序相同的顺序获取JSON中第一级的键?让我们举个例子。
my_dict = {
'key1': {...},
'key2': {...},
'key3': {...}
}
现在当我在python中获取第一级键时,它并没有按照与传递的顺序相同的顺序给我。但出于某种原因,我想以与传递的顺序相同的顺序获取它。
for item in my_dict:
print item
这给出了明显的结果。
key3
key2
key1
Q1 - 为什么python改变它的顺序?
Q2 - 出于某种原因,我希望它与['key1','key2','key3']
一样。我该如何获取它?
我在互联网上尝试了很多东西但没有得到解决方案。 Downvoters给出了原因,所以我可以改进我的问题。
答案 0 :(得分:0)
因为python的dicts是哈希表。散列表的本质是它们不保持初始排序。查看此link了解详情。
为了使您的词典按一定顺序排列,请考虑使用OrderedDict
来自python docs的示例:
>>> # regular unsorted dictionary
>>> d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
>>> # dictionary sorted by key
>>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
答案 1 :(得分:0)
Dictionary是一个键值映射。它不保证order。使用OrderedDict