我有多个包含需要合并的关系数据的 json 文件,每个文件都有一条记录,其中 commonkey 是所有文件中的公共键,在下面的示例中 a0 ,a1 是公共键。值是多个嵌套字典Key1、key2 等键如下所示,我需要合并多个 json 文件并得到输出,如 dboutput.json 所示,文件名作为合并操作中的索引。这样的问题是一个相关的问题,它合并了丢失的信息,但在我的情况下,我不想要任何替换现有键或跳过更新的更新,以防点击现有键,创建另一个由文件名索引的嵌套字典,如下所示:
例子:
文件 db1.json:
“a0”:{ “公鸡”:[ "a1", “父键值 1” ], "key1": "kvalue1", “key2”:“kvalue2” “keyp”:“kvalue2abc” }, “a1”:{ ... }
文件 db2.json:
“a0”:{ “公鸡”:[ "a1", “父键值 1” ], "key1": "kvalue1xyz", "key2": "kvalue2", “key3”:“kvalue2” }, “a1”:{ ... }
期望的输出
文件 dboutput.json
“a0”:{ “公鸡”:[ "a1", “父键值 1” ], "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"
],
所有文件都相同,因此无需重复