python中json数据的TypeError

python中json数据的TypeError,python,python-2.7,python-requests,Python,Python 2.7,Python Requests,我有一个简单的python代码,我正在使用它来输入来自交易所的要价,当我试图运行下面的代码时,我得到一个TypeError:unhabable type:'dict'。我不确定我是否了解如何在python中处理json数据 import requests response = requests.get('https://bittrex.com/api/v1/public/getticker?market=BTC-SHIBE') jdata = response.json() assert r

我有一个简单的python代码,我正在使用它来输入来自交易所的要价,当我试图运行下面的代码时,我得到一个TypeError:unhabable type:'dict'。我不确定我是否了解如何在python中处理json数据

import requests

response = requests.get('https://bittrex.com/api/v1/public/getticker?market=BTC-SHIBE')
jdata = response.json()

assert response.status_code == 200

print jdata[{u'result':{u'Ask'}}]

您正在错误地访问生成的词典。如果您想访问要价,请使用:

print jdata['result']['Ask']
其中“result”为您提供嵌套字典,然后您可以访问与上的“Ask”关联的值

当出现错误响应时,您可以要求响应引发异常,而不是使用断言:

import requests

response = requests.get('https://bittrex.com/api/v1/public/getticker?market=BTC-SHIBE')
response.raise_for_status()  # raises an exception if not a 2xx or 3xx response

jdata = response.json()

print jdata['result']['Ask']
您应该在尝试访问JSON数据之前执行此操作

演示:

>>> import requests
>>> response = requests.get('https://bittrex.com/api/v1/public/getticker?market=BTC-SHIBE')
>>> response.raise_for_status()
>>> jdata = response.json()
>>> print jdata['result']['Ask']
9.2e-07