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]}
>>>
なぜ 'path'を2回開いていますか? FWIW、 'open(path).readline()'はファイルを開き、行を読み込み、それを投げ捨て、ファイルを閉じます。そのファイル構造はちょっと奇妙です。各行に別々のJSONオブジェクトがあります。 –
あなたのコードスニペットはLinuxのpython2.7とpython3.4の下で動作します。ファイルのダウンロードや保存中に何かが間違っていた可能性はありますか? –
私にとってはうまく動作しますが、完全な3560 jsonレコードは問題なくデコードされます。私は、入力ファイルのいくつかの破損を疑う。それは切り捨てられますか? (3560行にする必要があります)。 – mhawke