从 .json 文件加载,根据值对数据进行排序,然后将其保存到同一个 .json 文件

Load from .json file, sort data according to value then save it to same .json file

我拥有的 JSON 文件:

[{
"key_a": "value",
"key_b": [{
        "key_a": "c",
        "key_b": null
    },
    {
        "key_a": "b",
        "key_b": null
    }]
}]

我想要的格式:

[{
    "key_a": "value",
    "key_b": [{
            "key_a": "b",
            "key_b": null
        },
        {
            "key_a": "c",
            "key_b": null
        }]
}]

如何根据键的值(例如根据 'key_a')对子元素进行排序,然后将其保存到加载数据的源 JSON 文件中?

我的想法是这样的:

def read_json_file():
    with open(filename) as file:
        var = json.load(file)
    file.close()

def sort_json_var():
    ...

def write_json_file():
    with open (filename, 'w') as file:
        json.dump(data, file, indent=4)
    file.close()

Python的内置函数sorted可以做到这一点。如果 var 是您加载的 json 文件(您可能想将其传递给 sort_json_var),则

sorted(var[0]["key_b"], key=lambda x:x["key_a"])

将return里面的部分变成你想要的,只要里面的每一个元素都有key_a。 然后剩下的就是将该结果分配回 var[0]["key_b"].