You need to enable JavaScript to run this app. pandas读取CSV遇单元格未闭合引号报C tokenize错误的不忽略行修复方法
优惠活动
大模型
产品
解决方案
定价
更多

pandas读取CSV遇单元格未闭合引号报C tokenize错误的不忽略行修复方法

解决Pandas读取TSV时未闭合引号导致的Tokenization错误

问题根因

你当前通过delimiter='\t'读取的是TSV格式文件,Pandas默认使用的C解析器会强制校验双引号的配对逻辑,遇到单个未闭合的引号时就会触发Error tokenizing data. C error。
之前直接传csv.QUOTE_NONE出现警告的原因是:该参数和Pandas默认关联的excel-tab方言自带的quoting规则(对应csv.QUOTE_MINIMAL=3)冲突;且全局禁用引号解析会破坏其他文件中正常带引号字段的解析逻辑,存在兼容性隐患。

适配的解决方案

方案1:逐行预处理补全未闭合引号(兼容性最高,推荐自动化流程使用)

该方法先逐行检测双引号数量,若为奇数说明存在未闭合引号,自动在行尾补一个双引号后再喂给Pandas,既保留目标行不丢失,又完全不影响其他正常文件的引号解析逻辑。

import csv
import pandas as pd
from io import StringIO

file_path = "你的文件路径"

# 逐行预处理补全未闭合引号
processed_content = []
with open(file_path, 'r', encoding='utf-8') as f:
    for line in f:
        # 统计普通双引号数量(排除转义的双引号,避免误判)
        normal_quote_count = line.replace('\\"', '').count('"')
        # 引号数量为奇数说明存在未闭合引号
        if normal_quote_count % 2 != 0:
            line = line.rstrip('\n') + '"' + '\n'
        processed_content.append(line)

# 读取处理后的内容,保留默认的最小引用规则适配正常文件
df = pd.read_csv(
    StringIO(''.join(processed_content)),
    delimiter='\t',
    index_col=False,
    quoting=csv.QUOTE_MINIMAL
)
  • 适配场景:自动化流程中可能遇到个别未闭合引号,但其他文件存在正常带引号、转义引号字段需要正确解析的情况。

方案2:显式配置参数消除冲突,禁用引号解析

如果可以确认所有文件的字段都不需要做引号转义(比如你提供的正常单元格示例本身不带引号),可以显式指定引号相关参数,消除ParserWarning,同时统一禁用引号解析:

import csv
import pandas as pd

df = pd.read_csv(
    file_path,
    delimiter='\t',
    index_col=False,
    quoting=csv.QUOTE_NONE,  # 禁用引号解析逻辑
    quotechar=None,  # 显式指定不使用引号字符,消除和默认方言的冲突
    escapechar='\\'  # 如需支持转义字符可保留该配置,无需求可删除
)
  • 注意:该方案会把字段里的双引号当成普通文本保留,仅适用于确认所有文件无引号转义需求的场景。

方案3:切换Python解析引擎提升容错

如果不想做预处理,可以切换到纯Python解析引擎,该引擎对未闭合引号的容忍度更高,无需修改文件内容即可正常读取:

import csv
import pandas as pd

df = pd.read_csv(
    file_path,
    delimiter='\t',
    index_col=False,
    engine='python',  # 切换到Python解析引擎
    quoting=csv.QUOTE_NONE
)
  • 注意:Python引擎的解析速度远低于C引擎,仅推荐小体积文件使用。

避坑提醒

  • 不要直接使用on_bad_lines='skip',该参数会直接丢弃存在解析问题的行,不符合你保留该行的需求。
  • 如果未闭合引号出现在字段中间而非行尾,可以根据实际分隔符的位置调整补全逻辑,无需统一在行尾补全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 12:45:01