在python中合并Json对象?
我有两个json对象。两者都可能有公共键,一些只出现在第一个对象中,而另一些只出现在第二个对象中。 当我来到这两个物体时,物体的结构不应该改变。只会添加新级别的键,例如指定该值属于哪个对象。即使是json对象的结构也表示层次结构,其级别是不固定的在python中合并Json对象?,python,json,Python,Json,我有两个json对象。两者都可能有公共键,一些只出现在第一个对象中,而另一些只出现在第二个对象中。 当我来到这两个物体时,物体的结构不应该改变。只会添加新级别的键,例如指定该值属于哪个对象。即使是json对象的结构也表示层次结构,其级别是不固定的 a = {"parent1" : { "childa1" : { "grandchilda11" : { "data": values}, "grandchilda12" :{"dat
a = {"parent1" : { "childa1" : { "grandchilda11" : { "data": values},
"grandchilda12" :{"data" : values }
}
"data" : values
}
{ "childa2" : { "grandchilda21" : { "data": values},
"grandchilda22" :{"data" : values }
}
"data" : values
}
}
b = { "parent1" : { "childa1" : { "grandchilda11" : { "data": values},
"grandchilda12" :{"data" : values }
}
"data" : values
}
{ "childa2" : { "grandchilda21" : { "data": values},
"grandchilda22" :{"data" : values }
}
"data" : values
},
"parent2" : { "childb1" : { "grandchildb11" : { "data": values},
"grandchildb12" :{"data" : values }
}
"data" : values
}
{ "childb2" : { "grandchildb21" : { "data": values}
}
"data" : values
}
}
结果应该组合这种类型的json字符串。这里的数据级别直接包含值,而在结果中,它应该类似于它所属的对象,充当键,然后是值
"data" : { "a" : values , "b":values}
我想这可能就是你要找的 如果您有数据字典
a
和b
,您可以使用merge(a,b)
调用下面的函数来合并这两个,就像您所说的那样。它确实依赖于两本词典具有相同结构的假设
试试这个:
def merge(obj1, obj2):
for key in obj2:
obj1[key] = obj2[key]
return obj1
我还不完全清楚
值应该是什么:整个数据字典,或者可能是已经存在的“数据”
键?如果是后者,预期的行为是什么?扁平化值?您没有“两个json对象”,您有两个dict
。普通的老Python格言。语言中使用最多的类型,有很好的文档记录。现在,请您至少用1编辑您的问题。这些输入的输入和预期输出的完整示例(“值”不是完整示例)和2。你试过什么没用?
def merge(obj1, obj2):
for key in obj2:
obj1[key] = obj2[key]
return obj1