python 'utf-8'编解码器无法解码位置4276中的字节0xa0:无效起始字节

6uxekuva  于 2022-12-28  发布在  Python
关注(0)|答案(6)|浏览(155)

我尝试读取并打印以下文件:文本. tsv(https://www.sec.gov/files/dera/data/financial-statement-and-notes-data-sets/2017q3_notes.zip
根据SEC,数据集以单一编码提供,如下所示:
制表符分隔值(. txt):utf-8,制表符分隔,\n-终止行,第一行包含小写的字段名称。
我的当前代码:

import csv

with open('txt.tsv') as tsvfile:
    reader = csv.DictReader(tsvfile, dialect='excel-tab')
    for row in reader:
        print(row)

所有尝试均已结束,并显示以下错误消息:
'utf-8'编解码器无法解码位置4276中的字节0xa0:无效起始字节
我有点迷路了。有人能帮我吗?

eqqqjvef

eqqqjvef1#

文件中的编码为“windows-1252”。请用途:

open('txt.tsv', encoding='windows-1252')
rqqzpn5f

rqqzpn5f2#

如果有人在土耳其数据工作,那么我建议这行:

df = pd.read_csv("text.txt",encoding='windows-1254')
ne5o7dgx

ne5o7dgx3#

ds = pd.read_csv('/Dataset/test.csv', encoding='windows-1252')

对我来说很好,谢谢。

muk1a3rh

muk1a3rh4#

我有相同的错误信息.csv文件,这对我的工作:

df = pd.read_csv('Text.csv',encoding='ANSI')
yvgpqqbh

yvgpqqbh5#

我也遇到了同样的问题,工作时使用拉丁1编码,请参阅示例代码适用于您的代码库。给予一个尝试,如果上述决议不工作。

df=pd.read_csv("../CSV_FILE.csv",na_values=missing, encoding='latin1')
yi0zb3m4

yi0zb3m46#

如果输入有一个杂散的'\xa0',那么它不是UTF-8格式的,句号。
是的,您必须将其重新编码为UTF-8(请参见:iconvrecode命令,或者很多文本编辑器和IDE都可以做到),或者使用8位编码来读取它(正如所有其他答案所建议的那样)。
你应该问自己的是-这个字符到底是什么(0xa0或160)?在许多8位编码中,它是一个不间断的空格(如HTML中的 )。对于至少一个DOS编码,它是一个重音“a”字符。这就是为什么你需要查看从8位编码解码它的结果。
顺便说一句,有时候人们说“UTF-8”,他们的意思是“我猜主要是ASCII”。如果它是一个不间断的空格,他们就不会那么远了:

In [1]: '\xa0'.encode()
Out[1]: b'\xc2\xa0'

'\xc2'字节之前加上一个extra就可以了。

相关问题