2017-03-06 13 views
1

私は大きなjson配列ファイルをダウンロードしましたが、これはより小さなファイルに分割する必要がありますが、以下のフォーマット(配列内の新しいオブジェクトごとに改行) (元のJSONは同じフォーマットでもある)json配列をPythonの特定のフォーマットに分割する

[ 
{"a":"a1","b":"b1","c":"c1"}, 
{"a":"a2","b":"b2","c":"c2"}, 
{"a":"a3","b":"b3","c":"c3"} 
] 

Iはjson.dumpを使用するが、それだけでも、私の上記形式で出力を与えていない単一の行に小さなアレイを印刷しインデントオプションを使用しています

+0

目的には引用符はありませんか?私はそれが有効なjsonであるかどうかわからない... –

+0

なぜそれがちょうど可読なjsonではなく特定の形式でなければならないのかについての光を流しているか? – heyiamt

+0

@ Tadhg McDonald-Jensen:引用を逃し、今すぐ追加しました – java2890

答えて

1

元のjsonの外観はわかりませんが、基本的にはこのようなものが欲しいと思います。

lines = [] 
for something in original_json: 
    line={something['a']:something['aa']} #whatever you need to do to get your values 
    lines.append(line) 
    #alternatively you can simplify this by doing lines.append({something['a']:something['aa'], etc} 
with open('myfile.json', 'a+') as f1: 
    f1.write("[\n") 
    for line in lines: 
     f1.write("%s,\n"%(line)) 
    f1.write("]") 
+0

は 'dump 'とは' dumps'フォーマットが異なりますか?私はopが特定の行に、出力例のスペーシング形式をブレークさせたいと思っています。 – heyiamt

+0

ダンプは異なる動作をしますが、私はスペーシングを反映するように答えを更新します – AndrewSmiley

+0

上記を参照してください。残念ながら、そのような書式設定を行う簡単な方法はありません。 – AndrewSmiley

関連する問題