从 .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"]
.
我拥有的 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"]
.