0

我正在尝试从 jsonl 文件中读取行,但出现以下错误。

回溯(最近一次调用):文件“insertion_script.py”,第 12 行,在 f.iter() 中的 for 行:文件“C:\Users\Administrator\Anaconda3\lib\site-packages\jsonlines\jsonlines.py ",第 204 行,在 iter skip_empty=skip_empty) 文件“C:\Users\Administrator\Anaconda3\lib\site-packages\jsonlines\jsonlines.py”,第 143 行,在读取 lineno,line = next(self._line_iter)文件“C:\Users\Administrator\Anaconda3\lib\codecs.py”,第 322 行,在 decode (result, used) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can 't 解码位置 886 中的字节 0xa3:无效的起始字节

BH_data = []
with jsonlines.open('2401659.jsonl','r') as f:
    for line in f.iter():
        BH_data.append(line)
4

1 回答 1

1

这意味着您的数据实际上不是 UTF-8 格式。0xA3 恰好是 Windows 代码页中的英镑符号。你应该试试

import codecs
with codecs.open('2401659.jsonl','r',encoding='cp1252') as jfile:
    with jsonlines.Reader(jfile) as f:
于 2021-03-11T06:05:09.360 回答