2016-04-24 24 views
0

テキスト用の大きなファイルである30megのjsonファイルをループする必要があります。単に使用するとき。また、私はwalmart https://developer.walmartlabs.com/docs/read/Special_Feedsからのフィードを使用しています。誰かがこれに精通しているかどうかはわかりません。非常に大きなファイルを解析するPython json

data = json.loads(open('file.json').read()) print data

は、私はこのエラー `

Traceback (most recent call last): 
    File "/home/python/Desktop/read.py", line 21, in <module> 
    data = json.loads(open('rolback.json').read()) 
    File "/usr/lib/python2.7/json/__init__.py", line 338, in loads 
    return _default_decoder.decode(s) 
    File "/usr/lib/python2.7/json/decoder.py", line 366, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
    File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode 
    raise ValueError("No JSON object could be decoded") 
ValueError: No JSON object could be decoded 

`

私は、ファイルが非常に大きいので、それはあると思いを取得します。 私もファイルをストリーミングしようとしましたが、メモリエラーが発生しました。

これらの非常に大きなファイルを処理するにはどのようなオプションが推奨されますか? これは、ファイルの出力の一部を含む前の質問へのリンクです。 python ijson large file loop to get names

+0

ファイル内のJSON配列ですか?または単にJSONオブジェクトのセットですか? – user3667569

+0

jsonlintを使用して、有効なjsonファイルがあることを確認してください – user1767754

+0

オブジェクトのセットだけですが、simplejsonを使用して別のエラーを取得する方法がわかりません。 – turtle02

答えて

0

No JSON object could be decodedエラーは、jsonデータに無効なJSONデータが含まれていることを意味します。 30MBはかなり小さく、あなたの問題ではありません。

jsonにエラーが含まれている場所を正確に表示するために、simplejsonを使用してより良いエラーメッセージを表示することができます。

+0

はい。同意する。 JSONは大きなファイルには問題ありません。 – user3667569

+0

@ user3667569答えに同意する場合は、コメントを書く代わりに+1ボタンを使用してください。ありがとう! – user312016

+1

私のコメントは - JSONは最初の答えになかった大きなファイルには問題がありません。 – user3667569

関連する問題