2011-12-21 15 views
7

A partir de los documentos: http://docs.python.org/library/json.htmlcarga JSON/volcado en Python

>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]') 
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}] 

he modificado así:

>>> the_dump=json.dumps("['foo', {'bar':['baz', null, 1.0, 2]}]") 
>>> the_load = json.loads(the_dump) 
u"['foo', {'bar':['baz', null, 1.0, 2]}]" 

Ahora es una cadena. Quiero hacer esto: the_load[1]['bar'].

¿Se puede hacer de esta manera? ¿Dónde estoy equivocado?

¿Por qué funciona esto?

>>> a= "[1,2,3]" 
>>> json.loads(a)[0] 
1 
+1

Si le interesan la velocidad y la seguridad, le recomiendo que instale el módulo 'simplejson' usted mismo. El módulo 'json' de Python, a partir de 2.6, es una versión anterior de' simplejson' que no tiene todas las mejoras de velocidad y seguridad de la última versión. – Edwin

Respuesta

12
>>> the_dump=json.dumps("['foo', {'bar':['baz', null, 1.0, 2]}]") 

Usted está solicitando que codifican una cadena JSON, por lo que no es sorprendente que se obtiene una cadena de nuevo cuando a descifrar. Intente en su lugar:

>>> the_dump=json.dumps(['foo', {'bar':['baz', None, 1.0, 2]}])