Python转储字典到json文件

我有这样的字典:

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树形图。

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

这是一个更简单的方法来做到这一点。

在第二行代码中,文件result.json被创build并作为variablesfp打开。

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

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

当然,这个命令不太可能完全保留下来……但是这只是字典的本质。

结合@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()
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从这里find: http : //www.anthonydebarros.com/2012/03/11/generate-json-from-sql-using-python/

这应该给你一个开始

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