2011-12-21 3 views
7

De la documentation: http://docs.python.org/library/json.htmlJSON charge/décharge de Python

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

je l'ai modifié comme suit:

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

Maintenant, il est une chaîne. Je veux faire ceci: the_load[1]['bar'].

Peut-il être fait de cette façon? Où vais-je mal?

Pourquoi cela fonctionne-t-il?

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

Si vous êtes intéressé par la vitesse et la sécurité, je vous recommande d'installer vous-même le module 'simplejson'. Le module 'json' de Python, à partir de la version 2.6, est une ancienne version de' simplejson' qui n'a pas toutes les améliorations de vitesse et de sécurité de la dernière version. – Edwin

Répondre

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

Vous demandez à encode JSON une chaîne, il est donc pas surprenant que vous obtenez une chaîne quand vous décodez. Essayez plutôt:

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