import json import os def split_caps(caption): caption = caption.strip() caption = caption.split('\n') caption = [cap.replace("\"", "").strip() for cap in caption] return caption save_path = './whole_pesudo_cap/sam_v_final_shortcap_v2.json' ori_json_path = './whole_pesudo_cap/sam_v_final_v2.json' caption_json_path = './whole_pesudo_cap/short_cap/' cap_json_files = os.listdir(caption_json_path) cap_json_paths = [os.path.join(caption_json_path, item) for item in cap_json_files] caption_jsons = [] for cap_json_path in cap_json_paths: with open(cap_json_path, 'r') as f: caption_jsons.extend(json.load(f)) with open(ori_json_path, 'r') as f: json_data = json.load(f) for item in caption_jsons: video_id = item['video_id'] obj_id = item['obj_id'] json_data[video_id]['objects'][obj_id].update({'short_caps': split_caps(item['short_cap'])}) print(json_data[video_id]) print("{} videos !!!".format(len(json_data))) with open(save_path, 'w') as f: json.dump(json_data, f)