Archivo de volcado de Python a archivo json

Tengo un dict como este:

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

No puedo averiguar cómo volcar el dictado en un archivo json como se muestra a continuación:

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

¿Hay una forma pythonica de hacer esto?

Puedes adivinar que quiero generar un treemap d3 .

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

Esta es una forma más fácil de hacerlo.

En la segunda línea de código, el archivo result.json se crea y se abre como la variable fp .

En la tercera línea, su sample result.json se escribe en el result.json !

Combinando la respuesta de @mgilson y @gnibbler, encontré que lo que necesitaba era esto:

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() 

De esta manera, tengo un archivo json bastante impreso. Los trucos de print >> f, j se encuentran aquí: 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) 

Por supuesto, es poco probable que el orden se mantenga exactamente … Pero esa es la naturaleza de los diccionarios …

Esto debería darle un comienzo

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