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

如何解决Pandas保存CSV自动加双引号及转义字符报错问题

解决Pandas保存CSV无引号问题

问题分析

使用Pandas的to_csv默认保存时,每行被双引号包裹;尝试quoting=csv.QUOTE_NONE并设置escapechar=''时触发_csv.Error: need to escape, but no escapechar set报错,且原始数据不含双引号。

解决方案

方案1:指定有效转义字符

设置quoting=csv.QUOTE_NONE时,必须搭配一个不会出现在数据中的有效字符作为escapechar,不能使用空字符串。示例代码:

import csv
training_set.to_csv(
    os.path.join(output_dir, target_dir, 'training_set.csv'),
    index=False,
    header=False,
    quoting=csv.QUOTE_NONE,
    escapechar='|'  # 选一个数据里没有的字符即可
)

只要数据中不存在|,输出的CSV就不会有引号,也不会触发转义逻辑。

方案2:直接写入文本文件(适合单列已拼接数据)

如果你的DataFrame是单列结构,每行已经是完整的逗号分隔字符串,可跳过Pandas的CSV格式化,直接逐行写入:

with open(os.path.join(output_dir, target_dir, 'training_set.csv'), 'w') as f:
    for line in training_set.iloc[:, 0]:  # 取第一列的所有行
        f.write(f"{line}\n")

这种方式完全由你控制输出内容,不会添加任何额外符号。

方案3:更换CSV分隔符

如果数据中存在逗号(导致Pandas自动加引号),可以更换一个数据中不存在的分隔符,同时关闭引号:

import csv
training_set.to_csv(
    os.path.join(output_dir, target_dir, 'training_set.csv'),
    index=False,
    header=False,
    sep=';',  # 用分号替代逗号作为分隔符
    quoting=csv.QUOTE_NONE
)

内容的提问来源于stack exchange,提问作者user366312

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 06:35:25