我有一个场景,我有两个json文件。假设fileA.json和fileB.json在两个文件中都有一些数据。在文件A中,我有一些数据,在文件B中,我有一些更改需要添加到文件A中。因此,在合并两个文件之后,我希望它将数据保存在具有相同结构和更新数据的名为fileC的第三个文件中,但是数据不应丢失。
这是我的示例文件:-
fileA
{
"data1":[
{
"id":"1",
"name":"abc"
},
{
"id":"2",
"name":"xyz"
}
],
"data2":[
{
"id":"1",
"data1_id":"2",
"data3_ids":[
"1"
]
},
{
"id":"2",
"user_id":"3",
"data3_ids":[
"2"
]
}
],
"data3":[
{
"id":"1",
"demo":"pqr",
"title":"Never Be the Same"
},
{
"id":"2",
"demo":"Zedd",
"title":"The Middle"
}
]
}
fileB
{
"data2":[
{
"id":"1",
"data1_id":"2",
"data3_ids":[
"1",
"2"
]
}
]
}
我想在存在data2的同一位置用fileB更新fileA,但在data2_ids中更新值为“ 2”。
这是我尝试过的代码:-
import json
with open("fileA.json") as fo:
data1 = json.load(fo)
with open("fileB.json") as fo:
data2 = json.load(fo)
data1.update(data2)
with open("fileC.json", "w") as fo:
json.dump(data1, fo)
此代码面临的问题是,尽管我正在获取fileB的数据,但是却丢失了fileA的数据。谁能建议我一些解决方案。
答案 0 :(得分:0)
无法发表评论。因此发布答案。您尝试过jsonmerge吗?
base = {
"foo": 1,
"bar": [ "one" ],
}
head = {
"bar": [ "two" ],
"baz": "Hello, world!"
}
from jsonmerge import merge
result = merge(base, head)