我跟随Wes McKinney的“Python for Data Analysis”中的例子。
在第2章中,我们被要求计算每个时区出现在'tz'位置的次数,其中一些条目没有'tz'。他使用json格式的数据。
我正在使用Python 2.7和IDE PyCharm。数据来自github。
import json
path = 'usagov_bitly_data2012-03-16-1331923249.txt'
open(path).readline()
records = [json.loads(line) for line in open(path)]
records[0]
之后我收到错误No JSON object could be decoded
。
我在json validate验证了这一点,但它也返回了一个错误。
我无法理解,这个数据中的错误在哪里
答案 0 :(得分:0)
我从github下载了文件,打开了python 2.7,输入了上面5行代码。它对我有用。
请您确认您使用的文件大约是1.5MB?
可以在此处找到该文件:https://raw.githubusercontent.com/d8amonk/pydata-book/master/ch02/usagov_bitly_data2012-03-16-1331923249.txt("将页面另存为"将文件保存到您的计算机中)
请使用txt文件的完整路径名再次执行代码吗?
>>> import json
>>> path = 'usagov_bitly_data2012-03-16-1331923249.txt'
>>> open(path).readline()
'{ "a": "Mozilla\\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\\/535.11 (KHTML, like Gecko) Chrome\\/17.0.963.78 Safari\\/53
5.11", "c": "US", "nk": 1, "tz": "America\\/New_York", "gr": "MA", "g": "A6qOVH", "h": "wfLQtf", "l": "orofrog", "al": "
en-US,en;q=0.8", "hh": "1.usa.gov", "r": "http:\\/\\/www.facebook.com\\/l\\/7AQEFzjSi\\/1.usa.gov\\/wfLQtf", "u": "http:
\\/\\/www.ncbi.nlm.nih.gov\\/pubmed\\/22415991", "t": 1331923247, "hc": 1331822918, "cy": "Danvers", "ll": [ 42.576698,
-70.954903 ] }\n'
>>> records = [json.loads(line) for line in open(path)]
>>> records[0]
{u'a': u'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.78 Safari/535.11', u
'c': u'US', u'nk': 1, u'tz': u'America/New_York', u'gr': u'MA', u'g': u'A6qOVH', u'h': u'wfLQtf', u'cy': u'Danvers', u'l
': u'orofrog', u'al': u'en-US,en;q=0.8', u'hh': u'1.usa.gov', u'r': u'http://www.facebook.com/l/7AQEFzjSi/1.usa.gov/wfLQ
tf', u'u': u'http://www.ncbi.nlm.nih.gov/pubmed/22415991', u't': 1331923247, u'hc': 1331822918, u'll': [42.576698, -70.9
54903]}
>>>