我有一个这样的字典:
sample = {'ObjectInterpolator': 1629, 'PointInterpolator': 1675, 'RectangleInterpolator': 2042}
我不知道如何转储字典到一个JSON文件如下所示:
{
"name": "interpolator",
"children": [
{"name": "ObjectInterpolator", "size": 1629},
{"name": "PointInterpolator", "size": 1675},
{"name": "RectangleInterpolator", "size": 2042}
]
}
有蟒式的方法吗?
您可能猜到我想要生成一个d3树图。
d = {"name":"interpolator",
"children":[{'name':key,"size":value} for key,value in sample.items()]}
json_string = json.dumps(d)
从python 3.7开始,字典的顺序被保留https://docs.python.org/3.8/library/stdtypes.html#mapping-types-dict
字典保持插入顺序。注意,更新密钥不会影响顺序。删除后添加的键在最后插入
结合@mgilson和@gnibbler的答案,我发现我需要的是:
d = {
"name": "interpolator",
"children": [{
'name': key,
"size": value
} for key, value in sample.items()]
}
j = json.dumps(d, indent=4)
with open('sample.json', 'w') as f:
print >> f, j
这样,我得到了一个漂亮的打印json文件。
打印>> f, j从这里找到:
http://www.anthonydebarros.com/2012/03/11/generate-json-from-sql-using-python/
d = {"name":"interpolator",
"children":[{'name':key,"size":value} for key,value in sample.items()]}
json_string = json.dumps(d)
从python 3.7开始,字典的顺序被保留https://docs.python.org/3.8/library/stdtypes.html#mapping-types-dict
字典保持插入顺序。注意,更新密钥不会影响顺序。删除后添加的键在最后插入
这应该是一个开始
>>> 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
}
]