我正在尝试通过运行以下脚本来解析txt文件> 2GB:
#!/usr/bin/env python
import json
def convert2json(filename):
with open(filename) as I:
for line in I:
d = {"data": line}
print(json.dumps(d, ensure_ascii=False))
if __name__ == "__main__":
import sys
convert2json(sys.argv[1])
脚本抛出错误:
Traceback (most recent call last):
File "ori.py", line 13, in <module>
convert2json(sys.argv[1])
File "ori.py", line 8, in convert2json
print(json.dumps(d))
File "/usr/lib/python2.7/json/__init__.py", line 244, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe0 in position 31: invalid continuation byte
并且在处理特殊字符时失败(我相信):
<E0>ทำคาม:
:<E9>皇甫
:<E9>皇甫:<E9>皇甫:<E9>皇甫
如何使脚本仅忽略引起问题的行?
当我转到要解析的文件并复制无法处理的大部分行时,请创建一个新文件并再次运行该脚本-它将起作用。我通过使用来复制行,less而不是将行复制到文件中vi。复制带有编码本身的行时,我是否正在做某些事情?
小怪兽爱吃肉
慕姐8265434
相关分类