2つのjsonファイルがあるとします。両方をロードしてから、2番目のエントリを最初のエントリに追加できるようにしたいと思います。これには、フィールドまたはリストエントリの追加が含まれる場合があります。次の例のようなもの:
file1.json:{"fruit":[{"name": "apple"、 "color": "red"}、{"name": "orange"、 "color": "orange"}]}
file2.json:{"フルーツ":[{"名前": "イチゴ"、 "色": "赤"、 "サイズ": "小さい"}、{"名前": "オレンジ"、 "サイズ": "中くらい" } ] }
結果:{"fruit":[{"name": "apple"、 "color": "red"}、{"name": "orange"、 "color": "orange"、 "size": "medium" }、{"名前": "イチゴ"、 "色": "赤"、 "サイズ":"小さい"}]}
最初は、それらを辞書にロードして、更新のようなものを試してみようと思いました。
import simplejson
filea = open("file1.json", 'r')
dicta = simplejson.loads(filea.read())
fileb = open("file2.json", 'r')
dictb = simplejson.loads(fileb.read())
filea.close()
fileb.close()
dicta.update(dictb)
両方の辞書に「fruit」のエントリがあるので、それらがマージされることを期待していましたが、dictaのエントリをdictbのエントリで単純にオーバーライドします。
この例をループするコードを記述できることはわかっていますが、実際に使用しているファイルははるかに大きく、より複雑です。車輪の再発明を始める前に、すでにこのようなことをしている図書館があるのではないかと思っていました。その価値のために、私はPython2.6.2を使用しています。
アドバイスや提案をありがとう!