我尝试读取并打印以下文件:文本. 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:无效起始字节
我有点迷路了。有人能帮我吗?
6条答案
按热度按时间eqqqjvef1#
文件中的编码为“windows-1252”。请用途:
rqqzpn5f2#
如果有人在土耳其数据工作,那么我建议这行:
ne5o7dgx3#
对我来说很好,谢谢。
muk1a3rh4#
我有相同的错误信息.csv文件,这对我的工作:
yvgpqqbh5#
我也遇到了同样的问题,工作时使用拉丁1编码,请参阅示例代码适用于您的代码库。给予一个尝试,如果上述决议不工作。
yi0zb3m46#
如果输入有一个杂散的
'\xa0'
,那么它不是UTF-8格式的,句号。是的,您必须将其重新编码为UTF-8(请参见:
iconv
、recode
命令,或者很多文本编辑器和IDE都可以做到),或者使用8位编码来读取它(正如所有其他答案所建议的那样)。你应该问自己的是-这个字符到底是什么(
0xa0
或160)?在许多8位编码中,它是一个不间断的空格(如HTML中的
)。对于至少一个DOS编码,它是一个重音“a”字符。这就是为什么你需要查看从8位编码解码它的结果。顺便说一句,有时候人们说“UTF-8”,他们的意思是“我猜主要是ASCII”。如果它是一个不间断的空格,他们就不会那么远了:
在
'\xc2'
字节之前加上一个extra就可以了。