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