python - 如何按字母顺序完全排序 JSON 树

标签 python json sorting

我需要在 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/

相关文章:

javascript - 获取 AngularJs 中 window.alert 中 Angular JS 表达式的值

python - pyspark groupBy 和 orderBy 一起使用

python - 通过子进程在远程计算机上执行 python 脚本时出错

python - Eclipse + PyDev 在大量导入时变得极其缓慢

json - 大型 JSON 数据未显示在控制台中

php - 使用特殊字符对数组进行排序

python - 按字母顺序对 argparse 帮助进行排序

python - Tensorflow:从图中删除节点

python - 如何创建总和为 x 的随机整数向量列表

arrays - 在 jq 中基于另一个数组获取数组