如何用Python从CSV向JSON指定键追加数据并保留原有结构
实现方案
你可以直接使用以下代码,仅需传入CSV文件路径和目标JSON文件路径即可自动完成数据批量写入,无需手动构造单条数据:
完整实现代码
import json import csv def batch_append_from_csv(csv_path, json_path='keyvalue.json', keep_original_docs=True): # 读取原有JSON文件,保留完整结构 with open(json_path, 'r', encoding='utf-8') as f: json_data = json.load(f) doc_list = json_data["inputDocuments"]["gcsDocuments"]["documents"] # 不需要保留原有测试数据时可直接清空列表 if not keep_original_docs: doc_list.clear() # 读取CSV文件批量构造符合要求的条目 with open(csv_path, 'r', encoding='utf-8') as f: csv_reader = csv.DictReader(f) for row in csv_reader: new_item = { "gcsUri": row["gcsUri"], "mimeType": "application/pdf" } doc_list.append(new_item) # 数据写回JSON文件 with open(json_path, 'w', encoding='utf-8') as f: json.dump(json_data, f, indent=4, ensure_ascii=False) # 调用示例,只需替换为你的CSV实际路径即可 batch_append_from_csv(csv_path='你的CSV文件路径.csv', keep_original_docs=False)
参数说明
csv_path:存储gcsUri数据的CSV文件路径,确保CSV首行列名为gcsUrijson_path:待修改的JSON模板文件路径,默认值为keyvalue.jsonkeep_original_docs:是否保留JSON文件中原有documents列表的内容,设置为False会先清空原有测试数据再写入CSV中的新数据,和你给出的预期输出效果一致
如果你的CSV文件列名不是
gcsUri,只需修改代码中row["gcsUri"]的键名和你CSV的实际列名一致即可。
内容的提问来源于stack exchange,提问作者Jowey
相关产品推荐
相关产品推荐

