Py第六问 py3.5学习笔记<利用python进行数据分析>

来源:互联网 发布:生命探测软件 编辑:程序博客网 时间:2024/06/16 20:13

2016年9月22日

第二章

来自bit.ly的1.usa.gov数据

import jsonpath = '/home/python3/data/pydata-book-master/ch02/usagov_bitly_data2012-03-16-1331923249.txt'#records = [json.loads(line) for line in open(path)]with open(path) as jsonfile:    data = json.load(jsonfile)

问题1:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 228171: ordinal not in range(128)

解决

Python 3 decodes text files when reading. The default encoding is taken from locale.getpreferredencoding(False), which evidently for your setup returns 'ASCII'. See the open() function documenation:

In text mode, if encoding is not specified the encoding used is platform dependent: locale.getpreferredencoding(False) is called to get the current locale encoding.

Instead of relying on a system setting, you should open your text files using an explicit codec:

currentFile = open(filename, 'rt', encoding='latin1')

where you set the encoding parameter to match the file you are reading.

Python 3 supports UTF-8 as the default for source code.

You may want to read up on Python 3 and Unicode in the Unicode HOWTO, which explains both about source code encoding and reading and writing Unicode data.

import jsonpath = '/home/python3/data/pydata-book-master/ch02/usagov_bitly_data2012-03-16-1331923249.txt'#records = [json.loads(line) for line in open(path)]with open(path) as jsonfile:    data = json.load(jsonfile.encoding("latin1"))
问题二

TypeError: 'str' object is not callable






0 0
原创粉丝点击