csv Unicode解码错误:'utf-8'/'ascii'编解码器无法解码位置31中的字节0xe 2

7rtdyuoh  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(103)

我有一个输入csv文件,当我尝试对它做一些操作并生成一个输出文件时,我得到了这个错误。
起初我得到了'utf-8'错误,所以我搜索并检查了我的文件的编码:

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

输出:'confidence':1.0,'encoding':'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中的字节0xe 2:序号不在范围内(128)
注:在两个错误中,位置31相同。

xuo3flqw

xuo3flqw1#

尝试更换

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)

相关问题