Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中合并Json对象?_Python_Json - Fatal编程技术网

在python中合并Json对象?

在python中合并Json对象?,python,json,Python,Json,我有两个json对象。两者都可能有公共键,一些只出现在第一个对象中,而另一些只出现在第二个对象中。 当我来到这两个物体时,物体的结构不应该改变。只会添加新级别的键,例如指定该值属于哪个对象。即使是json对象的结构也表示层次结构,其级别是不固定的 a = {"parent1" : { "childa1" : { "grandchilda11" : { "data": values}, "grandchilda12" :{"dat

我有两个json对象。两者都可能有公共键,一些只出现在第一个对象中,而另一些只出现在第二个对象中。 当我来到这两个物体时,物体的结构不应该改变。只会添加新级别的键,例如指定该值属于哪个对象。即使是json对象的结构也表示层次结构,其级别是不固定的

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