【发布时间】:2017-08-20 11:42:16
【问题描述】:
我有一本如下形式的字典:
{
"b":{
"ba": {
"Score":3,
"N":500
},
"aa": {
"Score": 10,
"N":300
},
},
"a":{
"xy": {
"Score":199,
"N":7
},
"zz": {
"Score":222,
"N":55
},
}
}
我希望第一个维度按字母顺序排序,而第二个维度按Score 排序,这样排序后看起来像:
{
"a":{
"zz": {
"Score":222,
"N":55
},
"xy": {
"Score":199,
"N":7
}
},
"b":{
"aa": {
"Score": 10,
"N":300
},
"ba": {
"Score":3,
"N":500
}
}
}
我已经搜索了一段时间的答案,但我只找到了如何对字典中的单个维度进行排序。最好的 Pythonic 方法是什么?
排序后,我需要将其转储到我计划使用json 模块的文件中。所以做类似的事情:
with open("out.json", 'w') as fp:
json.dump(my_dict, fp, sort_keys=True, indent=4)
【问题讨论】:
-
只是一个小障碍:字典是无序的。
-
@MSeifert 我知道字典在 Python 中存储时是无序的,但我需要按照我的编辑将其排序(如所述)输出到 json 文件中。
-
那么使用
OrderedDict就可以了吗? -
构建一个包含其他有序字典的有序字典并将它们转储为 json。
标签: python python-3.x sorting dictionary