Python转储dict到json文件

时间:2013-06-11 12:15:19

标签: python json dictionary

我有这样的字典:

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

我无法弄清楚如何将dict转储到json文件,如下所示:

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

有没有pythonic方法来做到这一点?

您可能猜测我想要生成d3树形图。

7 个答案:

答案 0 :(得分:270)

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

这是一种更简单的方法。

在第二行代码中,文件result.json被创建并作为变量fp打开。

在第三行,你的dict sample被写入result.json

答案 1 :(得分:29)

结合@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, jhttp://www.anthonydebarros.com/2012/03/11/generate-json-from-sql-using-python/

答案 2 :(得分:20)

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

当然,订单不太可能完全保留......但这只是词典的本质......

答案 3 :(得分:10)

这应该给你一个开始

>>> 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
    }
]

答案 4 :(得分:3)

具有精美打印格式:

import json

with open(path_to_file, 'w') as file:
    json_string = json.dumps(sample, default=lambda o: o.__dict__, sort_keys=True, indent=2)
    file.write(json_string)

答案 5 :(得分:0)

还想添加此内容(Python 3.7)

import json

with open("dict_to_json_textfile.txt", 'w') as fout:
    json_dumps_str = json.dumps(a_dictionary, indent=4)
    print(json_dumps_str, file=fout)

答案 6 :(得分:0)

如果您使用的是Path

User1 clicks login -> SSO Login -> Keys are returned to Flask App.
User2 clicks login -> SSO Login -> Keys are returned to Flask App.