You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将Pandas DataFrame写入CSV:大JSON转CSV报错求助

解决CSV写入报错:_csv.Error: need to escape, but no escapechar set

以下是几个直接有效的解决方法:

方法1:显式设置转义字符

在to_csv方法中添加escapechar参数,指定转义符号(比如反斜杠),让CSV写入器自动转义冲突字符:

data = pd.read_json(FILE + '.json', lines=True,
                    chunksize=2000000, orient='records', encoding='utf-8')

for i, chunk in enumerate(data):
    chunk.to_csv('../data_subset/{}'.format(FILE + '_' + str(i) + '.csv'),
                 index=False, escapechar='\\')

方法2:强制给所有字段加引号

导入csv模块后,设置quoting=csv.QUOTE_ALL,让所有字段都被引号包裹,彻底避免分隔符与字段内容的冲突:

import csv
import pandas as pd

data = pd.read_json(FILE + '.json', lines=True,
                    chunksize=2000000, orient='records', encoding='utf-8')

for i, chunk in enumerate(data):
    chunk.to_csv('../data_subset/{}'.format(FILE + '_' + str(i) + '.csv'),
                 index=False, quoting=csv.QUOTE_ALL)

方法3:预处理清理数据中的特殊字符

直接清理字符串字段里的换行符、未转义引号等问题字符,从数据源层面解决冲突:

data = pd.read_json(FILE + '.json', lines=True,
                    chunksize=2000000, orient='records', encoding='utf-8')

for i, chunk in enumerate(data):
    # 仅处理字符串类型的列
    str_cols = chunk.select_dtypes(include=['object']).columns
    for col in str_cols:
        chunk[col] = chunk[col].str.replace('\n', ' ').str.replace('"', '\\"')
    chunk.to_csv('../data_subset/{}'.format(FILE + '_' + str(i) + '.csv'),
                 index=False)

问题原因说明

报错本质是JSON数据中存在特殊字符(比如未转义的双引号、换行符、制表符等),写入CSV时这些字符与默认的分隔规则冲突,但pandas默认未设置转义机制,导致写入失败。上面三种方法分别从转义规则、字段包裹、数据预处理三个角度解决了冲突。

内容的提问来源于stack exchange,提问作者Shehryar Ahmed Subhani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 05:45:49