2011-12-21 80 views
7

从文档: http://docs.python.org/library/json.htmlJSON负载/倾倒在Python

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

我修改了它这样的:

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

现在是一个字符串。我想这样做:the_load[1]['bar']

可以这样做吗?我哪里错了?

为什么这样吗?

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

如果您对速度和安全感兴趣,我建议您自己安装'simplejson'模块。从2.6开始,Python的'json'模块是'simplejson'的旧版本,它没有最新版本的所有速度和安全性改进。 – Edwin 2011-12-21 17:59:37

回答

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

你要求它JSON编码字符串,所以这并不奇怪,你得到一个字符串,回来时,你解码。尝试改为:

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