【问题标题】:How to get a value from json dictionary in python? [duplicate]如何从python中的json字典中获取一个值? [复制]
【发布时间】:2016-01-19 01:56:09
【问题描述】:

运行我的代码的结果是这样的:

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

我如何才能从这个响应中实际获取 [username] 的值?

【问题讨论】:

    标签: python json python-3.x dictionary request


    【解决方案1】:

    使用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'
    

    这是关于json的 Python 2 信息

    这是json上的 Python 3 信息

    【讨论】:

      【解决方案2】:

      既然是字节串,你只需先解码即可。

      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'])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-24
        • 2015-03-31
        • 2017-10-23
        • 1970-01-01
        • 2021-01-23
        • 1970-01-01
        • 1970-01-01
        • 2014-03-22
        相关资源
        最近更新 更多