繁体   English   中英

Python 捕获异常“pandas.errors.ParserError:错误标记数据。C 错误”

[英]Python catch exception "pandas.errors.ParserError: Error tokenizing data. C error"

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

但是我需要报告造成问题的这么多文件,我认为我需要捕获该异常。 我通过使用尝试了

except pd.parser.CParserError 

except ExceptionSubclass as exceptionsubclass:

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

我得到的错误:

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

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

这是熊猫引发的异常

答案在这里

from pandas.errors import ParserError
try:
    ...
except ParserError:
    ...

或简单

except pd.errors.ParserError  as text_exception:  

这对我有用:

from dateutil.parser import ParserError

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM