2015-10-20 70 views
0

運行我的代碼的結果是這樣的:如何從python中的json字典獲取值?

b'{"username":"test","available":false,"status":"unavailable","failed_reason":null,"callback_url":"http://www.twitter.com/"}' 

我怎樣才能真正得到[用戶名],從這種反應的價值?

回答

3

使用json模塊將您的數據轉換爲json,然後在get之後進行簡單訪問。與您的數據結構觀察演示如下:

Python的2方法

In [5]: import json 

In [6]: a = json.loads(b'{"username":"test","available":false,"status":"unavailable","failed_reason":null,"callback_url":"http://www.twitter.com/"}') 

In [7]: a 
Out[7]: 
{u'available': False, 
u'callback_url': u'http://www.twitter.com/', 
u'failed_reason': None, 
u'status': u'unavailable', 
u'username': u'test'} 

In [8]: a.get('username') 
Out[8]: u'test' 

Python 3的方法

你必須要小心在Python 3爲JSON需要一個字符串,因此您的特定情況下,你需要解碼utf-8。因此,這個例子在Python 3可以作爲這樣的:

>>> a = b'{"username":"test","available":false,"status":"unavailable","failed_reason":null,"callback_url":"http://www.twitter.com/"}' 
>>> a = a.decode('utf-8') 
>>> import json 
>>> a = json.loads(a) 
>>> a.get('username') 
'test' 

這裏是Python的2 json

這裏的信息是json

+1

謝謝你,爲我工作! – Steve

0

Python 3的信息,因爲它是一個字節的字符串,你只需要先解碼。

import json 

data = b'{"username":"test","available":false,"status":"unavailable","failed_reason":null,"callback_url":"http://www.twitter.com/"}' 
a = json.loads(data.decode('utf-8')) 
print(a['username'])