web-dev-qa-db-ja.com

PythonダンプがJSONファイルに書き出す

私はこのような口述をします:

sample = {'ObjectInterpolator': 1629,  'PointInterpolator': 1675, 'RectangleInterpolator': 2042}

以下に示すように、辞書をjsonファイルにダンプする方法がわかりません。

{      
    "name": "interpolator",
    "children": [
      {"name": "ObjectInterpolator", "size": 1629},
      {"name": "PointInterpolator", "size": 1675},
      {"name": "RectangleInterpolator", "size": 2042}
     ]
}

これを行うためのPythonicの方法はありますか?

d3ツリーマップを生成したいと思うかもしれません。

152
holys
import json
with open('result.json', 'w') as fp:
    json.dump(sample, fp)

これは簡単な方法です。

コードの2行目で、ファイルresult.jsonが作成され、変数fpとして開かれます。

3行目では、辞書のsampleresult.jsonに書き込まれます。

274
moobi

@ mgilsonと@gnibblerの答えを組み合わせると、必要なものは次のとおりです。


d = {"name":"interpolator",
     "children":[{'name':key,"size":value} for key,value in sample.items()]}
j = json.dumps(d, indent=4)
f = open('sample.json', 'w')
print >> f, j
f.close()

このように、私はきれいに印刷されたjsonファイルを手に入れました。トリックprint >> f, jはここから見つかります: http://www.anthonydebarros.com/2012/03/11/generate-json-from-sql-using-python/

29
holys
d = {"name":"interpolator",
     "children":[{'name':key,"size":value} for key,value in sample.items()]}
json_string = json.dumps(d)

もちろん、順番が正確に保存されることはありそうもありません...しかしそれは単に辞書の本質です...

20
mgilson

これはあなたに出発点を与えるはずです

>>> import json
>>> print json.dumps([{'name': k, 'size': v} for k,v in sample.items()], indent=4)
[
    {
        "name": "PointInterpolator",
        "size": 1675
    },
    {
        "name": "ObjectInterpolator",
        "size": 1629
    },
    {
        "name": "RectangleInterpolator",
        "size": 2042
    }
]
10
John La Rooy