2015-10-20 96 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'])