如何仅使用pandas内置函数实现CSV到指定格式JSON的转换
用pandas内置方法实现CSV转目标格式JSON
你不需要手写双层遍历逻辑,pandas原生的to_json()方法可以直接实现你要的转换效果,代码更简洁,运行效率也比手动循环高,还能自动处理pandas专属数据类型的序列化问题,避免手动dump时的类型报错。
最简实现代码
import pandas as pd # 读取CSV文件,和你原有读取逻辑保持一致 df = pd.read_csv(r'ReactStepsSubsteps.csv', encoding='windows-1254') # 直接导出为目标结构的JSON文件 df.to_json( 'data.json', orient='records', force_ascii=False, indent=4, encoding='utf-8' )
参数说明
orient='records':核心配置,指定JSON输出结构为「每一行数据对应一个列名-值的字典,所有字典组成数组」,和你手动拼接出来的结构完全一致。force_ascii=False:对齐你原有json.dump的ensure_ascii=False配置,保证非ASCII字符(比如中文、特殊重音符号)不会被转义为Unicode编码,正常显示。indent=4:输出带4空格缩进的格式化JSON,和你原有缩进配置效果一致。encoding='utf-8':指定输出文件的编码为UTF-8。
补充说明:你原来手写的遍历逻辑用
iterrows()实现,运行效率低,而且遇到numpy数值、pandas时间类型等特殊数据类型时,直接用标准库json.dump经常会出现序列化报错,用内置to_json方法会自动完成所有类型适配,稳定性更好。
内容的提问来源于stack exchange,提问作者pianoman102
相关产品推荐
相关产品推荐

