sculida 发表于 2015-08-23 23:50

已搞定,请版主删帖。《利用python进行数据分析》开篇就搞不定了

本帖最后由 sculida 于 2015-08-24 00:15 编辑

搞定了,请版主删了这贴吧
原来是最后一行文本内容不完整,删掉最后一行即可。
------------------
谢谢大家!
开篇里这个例子,是逐行读取文本文件1usagov
1. 经UE分析,估计它的字符集是utf-8,但是open该文件的时候会报错
json loads
Traceback (most recent call last):
File "./1.py", line 8, in <module>
    records =
File "./1.py", line 8, in <listcomp>
    records =
File "/usr/lib/python3.4/json/__init__.py", line 318, in loads
    return _default_decoder.decode(s)
File "/usr/lib/python3.4/json/decoder.py", line 343, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.4/json/decoder.py", line 359, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Unterminated string starting at: line 1 column 206 (char 205)
估计是某一行的某个文字不是utf-8,所以解码失败。现在该怎么办?用for循环逐行读取文件,然后,捕捉异常,忽略这一行?
2. open函数的参数errors里说可以写ignore,但是不知道怎么这次没用。还有help(open)里说可以参考help(codecs.Codec),但是提示:
NameError: name 'codecs' is not defined
怎么把这个codecs弄出来?
--------------
代码如下:
#!/usr/bin/python3.4
#-*- coding:utf-8 -*-
import json
#path = 'example.dat'
path = '1usagov.tmp'
open(path, 'r',encoding='utf-8',errors='ignore')
print('json loads')
records =
--------------
1usagov.tmp参见附件
页: [1]
查看完整版本: 已搞定,请版主删帖。《利用python进行数据分析》开篇就搞不定了