读取CSV转JSON时遇EmptyDataError:无列可解析问题求助
解决CSV转JSON时的EmptyDataError问题
1. 排查CSV文件本身
- 确认文件非空:打开CSV文件,检查是否存在有效表头和数据行,排除空文件或仅含空白行的情况。
- 验证文件格式:确保数据用正确的分隔符(通常是逗号)分隔,表头与数据行结构一致,无乱码或特殊字符破坏格式。
2. 修正pandas读取逻辑(常用方案)
如果使用pandas库处理,针对不同场景调整代码:
- 路径错误导致读取空文件:改用绝对路径确保读取目标文件
import pandas as pd import json # 替换为你的CSV文件绝对路径 df = pd.read_csv("/Users/xxx/documents/your_data.csv") df.to_json("output.json", orient="records", indent=4) - 非逗号分隔符:指定对应分隔符参数
# 示例:分隔符为分号的情况 df = pd.read_csv("your_data.csv", sep=";") - 空白行/编码问题:跳过空白行并指定编码
df = pd.read_csv("your_data.csv", skip_blank_lines=True, encoding="utf-8")
3. 内置模块替代方案(轻量排查)
用Python原生csv和json模块,更易排查文件问题,空文件会生成空JSON数组而非报错:
import csv import json data_list = [] with open("your_data.csv", "r", encoding="utf-8") as csv_f: csv_reader = csv.DictReader(csv_f) for row in csv_reader: data_list.append(row) with open("output.json", "w", encoding="utf-8") as json_f: json.dump(data_list, json_f, indent=4, ensure_ascii=False)
内容的提问来源于stack exchange,提问作者Chinnari
相关产品推荐
相关产品推荐

