我需要在 python 中对 JSON 对象执行完整的递归字母顺序排序。
原因是为了能够diff两个json文件。
鉴于此输入:
{
"request-id": "12345",
"version": "1.1.4",
"multi": {
"one": 1,
"two": 2.0,
"Abc": [3,2,4,1, null],
"three": null,
"list": [
{"lb1": 2.1},
{"lb": 2.2},
{"la": 3},
{"mix_list": [1, {"bb":1}, 2, {"aa":1}]}]
}
}
这是预期的输出:
{
"multi": {
"Abc": [1,2,3,4,null],
"list": [
{"la": 3},
{"lb": 2.2},
{"lb1": 2.1},
{ "mix_list": [1, 2, {"aa": 1}, {"bb": 1}] }
],
"one": 1,
"three": null,
"two": 2.0
},
"request-id": "12345",
"version": "1.1.4"
}
编辑:为了能够进行比较,它也应该对数组元素进行排序。
最佳答案
您可以使用 json.dump/s
原生 kwarg sort_keys
来做到这一点。
a_json = json.dumps(json_object, sort_keys=True)
print(a_json)
关于python - 如何按字母顺序完全排序 JSON 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65886581/