UnicodeDecodeError:“utf-8”/“ascii”编解码器无法解码位置 31 中的字节 0xe2

问题描述 投票:0回答:1

我有一个输入 csv 文件,当我尝试对其进行一些操作并生成输出文件时,出现此错误。

起初,我收到“utf-8”错误,因此我使用以下命令搜索并检查了文件的编码:

import chardet
with open('1out_test.csv', 'rb') as rawdata:
    result = chardet.detect(rawdata.read(100000))
result

输出:{'置信度':1.0,'编码':'ascii'}

然后我写了以下内容:

WORDS, N = ["aaaa", "tttt"], 1

pattern = (
    rf"((?:\S+ +){{0,{N}}}\S*"
    fr"\b(?:{'|'.join(map(re.escape, WORDS))})\b"
    rf"\S*(?: +\S+){{0,{N}}})"
)

pd.read_csv("1out_test.csv", encoding='ascii', low_memory=False).assign(info=lambda x: x["remarks"].str.extract(pattern,flags= re.IGNORECASE, expand=False).fillna("NA")).to_csv("output.csv", index=False)

这又给了我同样的错误,但带有“ascii”: “ascii”编解码器无法解码位置 31 中的字节 0xe2:序数不在范围内(128)

注意:在这两个错误中,位置 31 是相同的。

python pandas csv error-handling python-unicode
1个回答
0
投票

尝试更换

pd.read_csv("1out_test.csv", encoding='ascii', low_memory=False).assign(info=lambda x: x["remarks"].str.extract(pattern,flags= re.IGNORECASE, expand=False).fillna("NA")).to_csv("output.csv", index=False)

与:

pd.read_csv("1out_test.csv", encoding='utf-8', low_memory=False).assign(info=lambda x: x["remarks"].str.extract(pattern,flags= re.IGNORECASE, expand=False).fillna("NA")).to_csv("output.csv", index=False)
© www.soinside.com 2019 - 2024. All rights reserved.