import json import os def merge_json_files(): # 定义输入和输出文件路径 process_3_path = "path/processed_3.json" processed_with_analysis_path = "backup/v17_2/path/processed_3_with_analysis_20250324163759.json" output_path = "temp_analysis/process_3.json" # 读取第一个JSON文件 with open(process_3_path, 'r', encoding='utf-8') as f: process_3_data = json.load(f) # 读取第二个JSON文件 with open(processed_with_analysis_path, 'r', encoding='utf-8') as f: processed_with_analysis_data = json.load(f) # 获取两个文件的键交集 common_keys = set(process_3_data.keys()) & set(processed_with_analysis_data.keys()) # 创建新的JSON数据 merged_data = {} for key in common_keys: skip = False # 如果shortestPathsMeta为空,则从processed_3_with_analysis文件中获取 axTreeIDList = process_3_data[key]['shortestPathsMeta'][0]['chainAxTreeID'] for axTreeID in axTreeIDList: if axTreeID is None: skip = True break if skip: continue # 以process_3.json为基础 merged_data[key] = process_3_data[key] # 从processed_3_with_analysis文件中获取raw_result和title并添加 if 'raw_result' in processed_with_analysis_data[key]['shortestPathsMeta'][0]: merged_data[key]['raw_result'] = processed_with_analysis_data[key]['shortestPathsMeta'][0]['raw_result'] if 'title' in processed_with_analysis_data[key]['shortestPathsMeta'][0]: merged_data[key]['title'] = processed_with_analysis_data[key]['shortestPathsMeta'][0]['title'].strip() # 将合并后的数据写入输出文件 with open(output_path, 'w', encoding='utf-8') as f: json.dump(merged_data, f, ensure_ascii=False, indent=2) print(f"合并完成!共处理了 {len(common_keys)} 个键。") print(f"结果已保存到 {output_path}") if __name__ == "__main__": merge_json_files()