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

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

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

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

输出:'confidence':1.0,'encoding':'ascii'}
然后我写了以下内容:

  1. WORDS, N = ["aaaa", "tttt"], 1
  2. pattern = (
  3. rf"((?:\S+ +){{0,{N}}}\S*"
  4. fr"\b(?:{'|'.join(map(re.escape, WORDS))})\b"
  5. rf"\S*(?: +\S+){{0,{N}}})"
  6. )
  7. 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#

尝试更换

  1. 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)

使用:

  1. 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)

相关问题