Python将含列表字段的CSV按指定格式导出为JSON的实现方法
你直接用Python内置的json模块就能完成格式化输出,甚至你原来手动遍历生成列表的代码都可以简化,不需要自己写双重循环:
完整实现代码
from ast import literal_eval import pandas as pd import json # 读入CSV的逻辑保持不变 df = pd.read_csv("test.csv", sep=";", converters={'Sports': literal_eval}) # 直接用pandas内置方法生成和你手动遍历完全一致的列表,替代你原来的双重循环 data_list = df.to_dict(orient='records') # 输出到JSON文件,设置缩进即可匹配你要的格式 with open("output.json", "w", encoding="utf-8") as f: json.dump(data_list, f, indent=2, ensure_ascii=False)
参数说明
orient='records'会直接将DataFrame转为[{列名1:值1, 列名2:值2...}, ...]格式的列表,和你手动遍历生成的结果完全一致,代码更简洁json.dump的indent=2参数会自动给JSON内容做层级缩进,输出的格式和你要求的样例完全匹配ensure_ascii=False是为了避免如果有非ASCII字符(比如中文)被转义为Unicode编码,纯英文场景也可以保留不影响效果
如果你不想修改你原来已经写好的遍历生成列表的逻辑,直接把你生成的json列表作为json.dump的第一个参数传入即可,后续输出逻辑完全相同。
内容的提问来源于stack exchange,提问作者LJG
相关产品推荐
相关产品推荐

