使用Pandas将CSV转JSON仅生成首行,如何导出全量数据?
解决CSV转JSON仅导出首行的问题
问题原因
你的CSV文件使用**分号(;)**作为字段分隔符,但pd.read_csv()默认以逗号(,)作为分隔符,导致Pandas将整行内容识别为单个列,最终转JSON后仅显示首行数据。
修改方案
在pd.read_csv()中指定sep=';'参数,让Pandas正确解析CSV的列分隔:
基础修复代码
import pandas as pd # 指定分号作为分隔符读取完整CSV数据 data = pd.read_csv( r'C:\Users\14103\OneDrive\Desktop\film.csv', encoding='utf-8', sep=';', # 关键:设置正确的分隔符 on_bad_lines='skip' ) # 导出完整JSON data.to_json(r'C:\Users\14103\OneDrive\Desktop\assignments\New_Products.json')
优化版(推荐)
如果需要生成更易读、更常用的每行一条记录的JSON格式,可以开启orient='records'和lines=True参数:
import pandas as pd data = pd.read_csv( r'C:\Users\14103\OneDrive\Desktop\film.csv', encoding='utf-8', sep=';', on_bad_lines='skip' ) # 导出为每行一个JSON对象的格式 data.to_json( r'C:\Users\14103\OneDrive\Desktop\assignments\New_Products.json', orient='records', lines=True )
说明
指定sep=';'后,Pandas会正确拆分CSV中的每一列,读取到全部行数据,此时转JSON就能导出完整内容。orient='records'将每条数据转为独立的JSON对象,lines=True让每个对象单独占一行,更适合后续的数据处理和读取。
内容的提问来源于stack exchange,提问作者karthik peri
相关产品推荐
相关产品推荐

