如何在Python中合并/覆盖两个JSON对象



我想合并两个JSON文件,同时数据将自己覆盖在主JSON文件中。

我的主要目标是:

{
"data": [
{
"name": "name1",
"gender": "male",
"age": "20",
"subject": "Python",
"pass": "No"
}
]
}

"新数据.json";需要用以下内容覆盖:

{
"data": [
{
"name": "name1",
"subject": "Python",
"pass": "Yes"
}
]
}

结果对象应该是:

{
"data": [
{
"name": "name1",
"gender": "male",
"age": "20",
"subject": "Python",
"pass": "Yes"          //updated
}
]
}

通常,您可以对字典使用内置的Pythonupdate方法,该方法使用新值更新当前字典,同时保留旧数据。

对于您的情况(假设您总是需要更新"data"密钥内数组中的FIRST元素(:

original_data = {
"data": [
{
"name": "name1",
"gender": "male",
"age": "20",
"subject": "Python",
"pass": "No"
}
]
}
new_data =  {
"data": [
{
"name": "name1",
"subject": "Python",
"pass": "Yes"
}
]
}
original_data["data"][0].update(new_data["data"][0]) #this updates the original JSON

最新更新