我有多个包含关系数据的json文件需要合并,每个文件都有一个记录,其中commonkey是所有文件中的公共键,在下面的示例中a0、a1都是公共的钥匙。那个value是多个键的嵌套字典,如Key1、key2等,如下所示,我需要合并多个json文件并获得输出如图所示dboutput.json文件,文件名作为合并操作中的索引。这样的问题是一个related question,它合并了丢失的信息,但在我的例子中,我不希望任何更新来替换现有的键或跳过更新,如果碰到一个现有的键,另一个由文件名索引的嵌套字典将创建如下:
示例:
文件db1.json:"a0": {
"commonkey": [
"a1",
"parentkeyvalue1"
],
"key1": "kvalue1",
"key2": "kvalue2"
"keyp": "kvalue2abc"
},
"a1": {
...
}
文件db2.json:
^{pr2}$
期望输出
文件dboutput.json文件在"a0": {
"commonkey": [
"a1",
"parentkeyvalue1"
],
"key1": {"db1":"kvalue1","db2":"kvalue1xyz"} ,
"key2": {"db1":"kvalue2","db2":"kvalue2"} ,
"key3": {"db2":"kvalue2"}
"keyp": {"db1":"kvalue2abc"}
},
"a1": {
...
}
那么如何进行这种无损合并呢?注意“key2”:{“db1”:“kvalue2”,“db2”:“kvalue2”}即使key\value对相同,它们也需要单独存储。实际上,输出是所有输入文件的联合,并且包含所有其他文件的所有条目。在
还有"commonkey": [
"a1",
"parentkeyvalue1"
],
对于所有文件都是相同的,因此不需要重复