2011-12-21 88 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]}])