2016-04-13 16 views
2

私はWes McKinneyの "Python for Data Analysis"の例に従っています。Python:JSONをデコードできません

第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でこれを確認しましたが、エラーも返されました。 私は理解できませんこのデータのどこにエラーがありますか

+2

なぜ 'path'を2回開いていますか? FWIW、 'open(path).readline()'はファイルを開き、行を読み込み、それを投げ捨て、ファイルを閉じます。そのファイル構造はちょっと奇妙です。各行に別々のJSONオブジェクトがあります。 –

+1

あなたのコードスニペットはLinuxのpython2.7とpython3.4の下で動作します。ファイルのダウンロードや保存中に何かが間違っていた可能性はありますか? –

+0

私にとってはうまく動作しますが、完全な3560 jsonレコードは問題なくデコードされます。私は、入力ファイルのいくつかの破損を疑う。それは切り捨てられますか? (3560行にする必要があります)。 – mhawke

答えて

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]} 
>>> 
+0

ありがとうございます。私はファイルにいくつか問題があったと思う。今それは動作します! – tvdev

+0

あなたは歓迎です:-) – Yaron

関連する問題