在python中合并Json对象?

时间:2016-10-20 10:57:24

标签: python json

我有两个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}

2 个答案:

答案 0 :(得分:0)

我认为这可能是您正在寻找的。

如果您有数据词典DATA 1.09725999832153 a,可以使用b调用以下功能,将两者合并,就像您所说的那样。 它确实依赖于这两个字典与它们具有相同结构的假设

merge(a, b)

答案 1 :(得分:0)

尝试一下:

def merge(obj1, obj2):
for key in obj2:
    obj1[key] = obj2[key]
return obj1