2017-01-22 26 views
-4
{ 
"name": "16287e9cdf", 
"width": 500, 
"height": 325, 
"width": 1024, 
"height": 665 
}, 
{ 
"name": "16287e9cdf", 
"width": 500, 
"height": 325, 
"width": 1024, 
"height": 665 
} 

次のようにjsonでこれらの値を再解析するには、Pythonの助けを借りて、Sparkで分析するのですか?レコードごとにjsonファイルを1行に再処理する方法は?

{"name": "16287e9cdf","width": 500,"height": 325,"width": 1024,"height": 665} 
{"name": "16287e9cdf","width": 500,"height": 325,"width": 1024,"height": 665} 

必要なもの:1.各{.......}は1行です。削除する "、"行間。

私はJsonファイルに2,000,000件のレコードを持っています。あなたがそうのようにそれを行うことができ、メモリにそれを読むことができれば....

+1

$ sed -i '1i [' filename $ sed -i -e '$a]' filename 

次に、あなたがそうのようなのpythonでそれを処理することができますか? –

+0

あなたのデータは有効なJSONではありません。これを確認するには、任意のJSONバリデータ(例:http://jsonlint.com/)を使用できます。有効なデータで処理する必要があります。 –

+0

ファイルのサイズは? MB、GB?あなたは窓かLinuxか? – MYGz

答えて

0

を行う方法:それぞれ最初と最後の行にコマンドラインからのsedで

まず、それが有効にするために[]を追加json。 1つの行を分割しており、他にはない除いて、これら二つのスニペットの違いは何ですか

import json 

with open('filename', 'r') as f: 
    a = json.load(f) 

with open('new_filename', 'w') as f2: 
    for b in a: 
     f2.write(str(b)+'\n') 
関連する問題