【问题标题】:Python catch exception "pandas.errors.ParserError: Error tokenizing data. C error"Python 捕获异常“pandas.errors.ParserError:错误标记数据。C 错误”
【发布时间】:2020-06-03 15:44:27
【问题描述】:

我遇到了我的故障 csv 输入文件整个读取的问题,我可以通过在我的 read_csv 函数中添加 "error_bad_lines=False" 来删除这些问题。

但我需要报告造成问题的这些文件,我认为我需要捕获该异常。我通过使用

进行了尝试
except pd.parser.CParserError 

except ExceptionSubclass as exceptionsubclass:

在网上搜索后,在这两种情况下我都无法捕捉到这个异常,如果您知道如何报告所有故障文件,请告诉我。

我得到的错误:

Traceback (most recent call last):
  File "main.py", line 134, in reading_csv
    df = pd.read_csv(absolute_path_of_file, sep=',', dtype=str, keep_default_na=False)
    data = self._reader.read(nrows)
  File "pandas/_libs/parsers.pyx", line 890, in pandas._libs.parsers.TextReader.read (pandas/_libs/parsers.c:10862)
  File "pandas/_libs/parsers.pyx", line 912, in pandas._libs.parsers.TextReader._read_low_memory (pandas/_libs/parsers.c:11138)
  File "pandas/_libs/parsers.pyx", line 966, in pandas._libs.parsers.TextReader._read_rows (pandas/_libs/parsers.c:11884)
  File "pandas/_libs/parsers.pyx", line 953, in pandas._libs.parsers.TextReader._tokenize_rows (pandas/_libs/parsers.c:11755)
  File "pandas/_libs/parsers.pyx", line 2184, in pandas._libs.parsers.raise_parser_error (pandas/_libs/parsers.c:28765)
pandas.errors.ParserError: Error tokenizing data. C error: Expected 7 fields in line 22, saw 8

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:

    尝试使用except pd.errors.ParserError 而不是except pd.parser.CParserError

    这是熊猫养大的exception

    【讨论】:

    • 我使用了所有提到的异常类“除了 pandas.errors.ParserError:” | “除了 pandas.errors.DtypeWarning:” | "除了 pandas.errors.EmptyDataError:" 和其他但无法捕捉到我们的场景。
    • #Nordle 知道怎么做
    • except Exception 没听懂?
    • @Nordle 例外工作除外,谢谢!正在寻找相同问题的相同解决方案。 :) 仍然没有办法在没有“except Exception”的情况下确定非一般情况下的 pandas ParserError 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2015-06-11
    • 2014-03-21
    • 2010-12-14
    • 1970-01-01
    • 2013-02-26
    相关资源
    最近更新 更多