必须合并两个此类JSON
我想把C
和C
,D
和D
结合起来,等等;以及内部键:a1
、b1
&c1
JSON1:
{
"A": 1,
"B": "b_value",
"C": {
"a1": "true",
"b1": [
"b1_1",
"b1_2"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "200",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "201",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "300",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "301",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "400",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "400",
"c1_2": "SO",
"c1_3": "true"
},
{
"c1_1": "500",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "500",
"c1_2": "SO",
"c1_3": "true"
},
{
"c1_1": "501",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"D": {
"a1": "true",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "200",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "201",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "301",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "600",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "601",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "600",
"c1_2": "SO",
"c1_3": "false"
},
{
"c1_1": "700",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "701",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "700",
"c1_2": "SO",
"c1_3": "false"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"E": {
"a1": "true",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "400",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "500",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "600",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "700",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"F": {
"a1": "true",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "200",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "201",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "200",
"c1_2": "SO",
"c1_3": "true"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"G": "LE",
"H": {
"primaryMethod": {
"a1": "TF",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SA",
"c1_3": "TF"
},
{
"c1_1": "101",
"c1_2": "SA",
"c1_3": "TF"
},
{
"c1_1": "200",
"c1_2": "SA",
"c1_3": "TF"
},
{
"c1_1": "201",
"c1_2": "SA",
"c1_3": "TF"
}
]
},
"secondaryMethod": {
"a1": "TF",
"b1": [
"HBI",
"HST"
],
"c1": [
]
}
},
"I": "false",
"J": {
"a1": "false",
"b1": [
"HBI",
"HST",
"HFT"
],
"c1": [
{
"c1_1": "201",
"c1_2": "SA",
"feeType": "FA",
"c1_3": "true"
},
{
"c1_1": "*",
"c1_2": "SA",
"feeType": "FA",
"c1_3": "false"
}
]
},
"K": [
{
"k1": "k1_value",
"k2": "k2_value",
"k3": "k3_value",
"k4": "k4_value",
"k5": "k5_value"
}
]
}
JSON2:
{
"A": 1,
"B": "b_value",
"C": {
"a1": "true",
"b1": [
"b1_1",
"b1_2",
"b1_3"
],
"c1": [
{
"c1_1": "1000",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "1010",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "2000",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "201",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "300",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "301",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "400",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "400",
"c1_2": "SO",
"c1_3": "true"
},
{
"c1_1": "500",
"c1_2": "SF",
"c1_3": "true"
}
]
},
"D": {
"a1": "true",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "200",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "201",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "301",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "600",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "601",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "600",
"c1_2": "SO",
"c1_3": "false"
},
{
"c1_1": "700",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "701",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "700",
"c1_2": "SO",
"c1_3": "false"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"E": {
"a1": "true",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "400",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "500",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "600",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "700",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"F": {
"a1": "true",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "200",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "201",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "200",
"c1_2": "SO",
"c1_3": "true"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"G": "LE",
"H": {
"primaryMethod": {
"a1": "TF",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SA",
"c1_3": "TF"
},
{
"c1_1": "101",
"c1_2": "SA",
"c1_3": "TF"
},
{
"c1_1": "200",
"c1_2": "SA",
"c1_3": "TF"
},
{
"c1_1": "201",
"c1_2": "SA",
"c1_3": "TF"
}
]
},
"secondaryMethod": {
"a1": "TF",
"b1": [
"HBI",
"HST"
],
"c1": [
]
}
},
"I": "false",
"J": {
"a1": "false",
"b1": [
"HBI",
"HST",
"HFT"
],
"c1": [
{
"c1_1": "201",
"c1_2": "SA",
"feeType": "FA",
"c1_3": "true"
},
{
"c1_1": "*",
"c1_2": "SA",
"feeType": "FA",
"c1_3": "false"
}
]
},
"K": [
{
"k1": "k1_value",
"k2": "k2_value",
"k3": "k3_value",
"k4": "k4_value",
"k5": "k5_value"
}
]
}
预期产出:
{
"A": 1,
"B": "b_value",
"C": {
"a1": "true",
"b1": [
"b1_1",
"b1_2",
"b1_3"
],
"c1": [
{
"c1_1": "1000",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "1010",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "2000",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "200",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "201",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "300",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "301",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "400",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "400",
"c1_2": "SO",
"c1_3": "true"
},
{
"c1_1": "500",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "500",
"c1_2": "SO",
"c1_3": "true"
},
{
"c1_1": "501",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"D": {
"a1": "true",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "200",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "201",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "301",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "600",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "601",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "600",
"c1_2": "SO",
"c1_3": "false"
},
{
"c1_1": "700",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "701",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "700",
"c1_2": "SO",
"c1_3": "false"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"E": {
"a1": "true",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "400",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "500",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "600",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "700",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"F": {
"a1": "true",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "101",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "200",
"c1_2": "SF",
"c1_3": "true"
},
{
"c1_1": "201",
"c1_2": "SF",
"c1_3": "false"
},
{
"c1_1": "200",
"c1_2": "SO",
"c1_3": "true"
},
{
"c1_1": "*",
"c1_2": "SA",
"c1_3": "true"
}
]
},
"G": "LE",
"H": {
"primaryMethod": {
"a1": "TF",
"b1": [
"HBI",
"HST"
],
"c1": [
{
"c1_1": "100",
"c1_2": "SA",
"c1_3": "TF"
},
{
"c1_1": "101",
"c1_2": "SA",
"c1_3": "TF"
},
{
"c1_1": "200",
"c1_2": "SA",
"c1_3": "TF"
},
{
"c1_1": "201",
"c1_2": "SA",
"c1_3": "TF"
}
]
},
"secondaryMethod": {
"a1": "TF",
"b1": [
"HBI",
"HST"
],
"c1": [
]
}
},
"I": "false",
"J": {
"a1": "false",
"b1": [
"HBI",
"HST",
"HFT"
],
"c1": [
{
"c1_1": "201",
"c1_2": "SA",
"feeType": "FA",
"c1_3": "true"
},
{
"c1_1": "*",
"c1_2": "SA",
"feeType": "FA",
"c1_3": "false"
}
]
},
"K": [
{
"k1": "k1_value",
"k2": "k2_value",
"k3": "k3_value",
"k4": "k4_value",
"k5": "k5_value"
}
]
}
我尝试了以下代码:
for i_data in [data1, data2]:
with open(i_data) as data_json:
data = json.load(data_json)
for key, value in data.items():
if key not in new_dict:
if isinstance(value, int):
new_dict[key] = value
if isinstance(value, str):
new_dict[key] = value
if isinstance(value, list):
new_dict[key] = list()
if isinstance(value, dict):
new_dict[key] = dict()
if key in new_dict:
if isinstance(value, list):
new_dict[key] += value
if isinstance(value, dict):
dict1 = new_dict[key]
for key1, value1 in value.items():
if key1 not in dict1:
if isinstance(value1, str):
dict1[key1] = value1
if isinstance(value1, list):
dict1[key1] = list()
if key1 in dict1:
if isinstance(value1, list):
dict1[key1] += value1
new_dict[key] = dict1
with open((base_path + 'g_json.json'), 'w') as op_file:
json.dump(new_dict, op_file, indent=2)
您可以尝试使用库jsonmerge 根据文档,它正是您想要的
相关问题 更多 >
编程相关推荐