目前,我正在使用以下格式的大量JSON文件:
File00 ,时间 T1 :
{
"AAA": {
"BBB": {
"000": "value0"
},
"CCC": {
"111": "value1",
"222": "value2",
"333": "value3"
},
"DDD": {
"444": "value4"
}
}
现在我已经为子字段"DDD"
提供了新的输入,我希望"批发"用以下内容替换它:
"DDD": {
"666": "value6",
"007": "value13"
}
因此,该文件将更改为:
File00 ,时间 T2 :
{
"AAA": {
"BBB": {
"000": "value0"
},
"CCC": {
"111": "value1",
"222": "value2",
"333": "value3"
},
"DDD": {
"666": "value6",
"007": "value13"
}
}
在我遇到的情况下,许多文件类似于 File00 ,所以我努力创建一个可以处理的脚本特定目录中的所有文件,标识JSON字段DDD
并用新内容替换它的内容。
如何在Python中执行此操作?
答案 0 :(得分:1)
以下是我为每个文件采取的步骤:
这是我的代码:
import json
#list of files.
fileList = ["file1.json", "file2.json", "file3.json"]
for jsonFile in fileList:
# Open and read the file, then convert json to a Python dictionary
with open(jsonFile, "r") as f:
jsonData = json.loads(f.read())
# Edit the Python dictionary
jsonData["AAA"]["DDD"]={"666": "value6","007": "value13"}
# Convert Python dictionary to json and write to the file
with open(jsonFile, "w") as f:
json.dump(jsonData, f)
另外,我从here.获取了遍历目录的代码你可能想要这样的东西:
import os
directory = os.fsencode(directory_in_str)
for file in os.listdir(directory):
filename = os.fsdecode(file)
if filename.endswith(".json"):
fileList.append(filename)