2012-05-10 26 views
-1

爲什麼不能正常工作?我正在閱讀simplejson JsonDecoder,true應該可以解析並轉換爲True。Python simplejson不能轉換真

% python 
>>> import simplejson as json 
>>> print json.loads({"bool":true}) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'true' is not defined 
>>> 

回答

7

輸入到loads應該是一個字符串:

>>> json.loads('{"bool":true}') 
{u'bool': True} 
1

json.loads需要一個字符串,它必須被包裹在引號,像這樣:

o = json.loads(u'{"bool":true}') 
print(o) # outputs {u'bool': True} 

注意,u(這使得字符串字符字符串在Python 2.x的)是此輸入可選,只有在使用非ASCII字符(如ü,é,編或ℝ)時纔有必要。

+0

這個文檔是說把它轉換從真正爲True。 http://docs.python.org/library/json.html#json.JSONEncoder。你是說我必須改變我的json,因爲它正在被Python解析? – maverick

+0

這個答案是錯誤的,因爲問題是關於'loads',它需要一個字符串。 – zigg

+0

@zigg這個答案回答了原來的問題,這是關於轉儲。特立獨行[顯着改變](http://stackoverflow.com/posts/10543278/revisions)。更新。 – phihag