【发布时间】:2021-10-31 19:29:35
【问题描述】:
有没有办法一次对python字典的所有键、子键、子子键等进行排序?
假设我有字典
dict_1 = {
"key9":"value9",
"key5":"value5",
"key3":{
"key3_1":"value3_1",
"key3_3":"value3_3",
}
"key4":"value4",
"key2":"value2",
"key8":{
"key8_1":"value8_1",
"key8_5":[
"value8_5_3",
"value8_5_1",
]
"key8_2":"value8_2",
}
"key4":"value4",
"key1":"value1",
}
我希望它排序为
dict_1 = {
"key1":"value1",
"key2":"value2",
"key3":{
"key3_1":"value3_1",
"key3_3":"value3_3",
}
"key4":"value4",
"key5":"value5",
"key8":{
"key8_1":"value8_1",
"key8_2":"value8_2",
"key8_5":[
"value8_5_1",
"value8_5_3",
]
}
"key9":"value9",
}
有什么方法可以做到吗?
请注意:
-
可能我的
dict_1可能有多个级别的子键(嵌套 字典)或子值(嵌套列表)。 -
我使用的是 Python 2.7.17,但无法更新。但是顺序不是 保存在 3.7 之前的 Python 版本的字典中,所以我敢打赌 必须使用OrderedDict 进行排序。
【问题讨论】:
-
你的python版本是3.7或以上吗?字典中不保留 3.7 以下的插入顺序。
-
创建一个函数,对顶层的dict进行排序,然后在节点是dict实例的每个节点上递归调用它
标签: python python-2.7 sorting dictionary ordereddict