{
"app": {
"Garden": {
"Flowers": {
"Red flower": "Rose",
"White Flower": "Jasmine",
"Yellow Flower": "Marigold"
}
},
"Fruits": {
"Yellow fruit": "Mango",
"Green fruit": "Guava",
"White Flower": "groovy"
},
"Trees": {
"label": {
"Yellow fruit": "Pumpkin",
"White Flower": "Bogan"
}
}
}
我有一个带有JSON内容的文件,如上所示,我想在此文件中添加/覆盖键值对,而不触及文件中的现有行。原因是当我将文件上传到git时,它显示整个文件已被更改,而不仅仅是更新的键值对。我的问题是,当我打开文件并写入文件时,整个文件都会更新。
比如说我想更新:
json[app][Garden][Flowers][Red Flower] = 'Shoe Flower'
只应在Json文件中更新上面的Key-Value对,而不应重写整个文件。
这不起作用:
with open("/Users/vbabu/Documents/sk-SK.json",'a/w') as json_data:
json.dump(pte,json_data,ensure_ascii=False,indent=4, sort_keys=True)
提前致谢
答案 0 :(得分:0)
我认为你对修改文件有错误的概念。
更新一行意味着您创建了一个新文件并替换旧文件。
Git显示整个文件更改可能是因为行缩进。
您设置json.dump indent=4
,您的文件可能与格式化的json不匹配。
如果您不想格式化文件,则应尝试使用字符串操作并编写内容而不是json.dump。