将多个JSON合并为一个完整的JSON
import json
import os
import uuid
# 需要合并多少个文件
file_num =1
# 读取文件中内容 并转换为JSON返回
def fileInfoToJson(file_path):
f = open(file_path,"r",encoding="utf-8")
f_dt = json.load(f,parse_int=float)
return f_dt;
# 遍历指定目录,显示目录下的所有文件名
def eachFile(filepath):
#拿到文件夹下的文件名了
i = 0
paths = []
pathDir = os.listdir(filepath)
for allDir in pathDir:
if i==file_num:
return paths
if allDir.endswith(".json"):
paths.append(filepath+"/"+allDir)
i+=1
return paths
path1s = eachFile("data/json1")
path2s = eachFile("data/json2")
path3s = eachFile("data/json3")
ini_jd = fileInfoToJson("INIT.json")
out_path =r"C:\Users\panyu\Desktop\jupyter\json-res\\"
print("Began to merge 👇")
for num in range(0,file_num):
path1_jd = fileInfoToJson(path1s[num])
path2_jd = fileInfoToJson(path2s[num])
path3_jd = fileInfoToJson(path3s[num])
ini_jd["EXTERNAL_INFO"]["ECRP_DATA"]=path1_jd["EXTERNAL_INFO"]["ECRP_DATA"]
ini_jd["EXTERNAL_INFO"]["PBC_DATA"]=path2_jd["EXTERNAL_INFO"]["PBC_DATA"]
ini_jd["EXTERNAL_INFO"]["TAX_DATA"]=path3_jd["EXTERNAL_INFO"]["TAX_DATA"]
# 组装后的 JSON 结果 写入至文件中
format_json_res = json.dumps(ini_jd,indent=4)
out_path = out_path+str(num)+".json"
with open(out_path,"w") as f:
f.write(format_json_res)
print(" path: "+out_path)
print("End of the merger 👆")