2016-08-08 15 views
1

this topicと非常によく似た何かに取り組んでいます。私はJSONファイルのようなファイルをダウンロードしました。しかし、私がメモ帳で開くと、それは辞書の非常に長いリストであることがわかりました。私はこのようなパイソンにこの 'JSONファイル' をロードしようとしたPythonで 'JSON文字列'ファイルを解析する方法は?

[ 
{'time':1, 'value':100}, 
{'time':2, 'value':105}, 
{'time':3, 'value':120} 
] 

import json 
with open('data.json') as data_file: 
    data = json.loads(data_file) 

をが、エラーました:

TypeError: expected string or buffer 

どのようにすることができますが、ファイルは、基本的に次のようになりますこのファイルをPythonに正しく読み込みますか?私はすべての '値'を抽出するために各行を反復したいと思います。ありがとう!

+1

'json.loads'を使ってファイルを読む必要があります。つまり、' data = json.loads(data_file.read()) ' – danidee

+0

これを実行すると、 json.load() 'を参照してください。このファイルは完全に85473個の行を持ち、最初の行は '['と最後の行は ']'です。前と後の引用符はありません。私はそれが本質的にリストオブジェクトだと思う。 – user3768495

答えて

2

使用json.load

with open('data.json') as data_file: 
    data = json.load(data_file) 

json.loadjson.loadsの主な違いは、json.loadが文字列からjson.loads負荷JSONに対し、からJSONを読み取り、ロードするファイル(またはファイルのようなオブジェクト)を受け入れることです。

+0

ありがとう@Rushy。私は 'json.load()'を使いましたが、まだエラーがありました: 'ValueError:余分なデータ:行371列2 - 行85473列2(char 196700 - 43922174)'。 85473行が最後の行です。このファイルの最初の行は '['、最後の行は ']'です。前後に引用符はありません。 – user3768495

+0

@ user3768495あなたのJSONファイルは、おそらく有効なJSONではありません。 ']'の後ろに何かがありますか? –

+0

いいえ、何もありません。このファイルは、上の質問で示した例とまったく同じですが、さらに多くの行があります。 – user3768495

関連する問題