我正在尝试在Python中处理此API的结果:
https://www.cryptopia.co.nz/api/GetMarkets/BTC/12
当我将API调用的结果分配给变量时,我似乎无法迭代它甚至调用其中的对象。当我执行response[0]
之类的操作时,我只会获得单个字符。我需要能够进入"数据"对象在那里并迭代它。
我被困住了所以任何帮助都会受到高度赞赏。
由于
答案 0 :(得分:2)
我不确定您是如何从API检索数据的,但我建议您使用Python requests
库。
你会发出请求:
import requests
r = requests.get('https://www.cryptopia.co.nz/api/GetMarkets/BTC/12')
从那里你需要JSON数据,所以将数据转换为JSON,如下所示:
data = r.json()
然后,您只需从API解析所需的属性即可。如果你想要label
数组中第一个对象的Data
属性,你可以这样做:
>>> data['Data'][0]['Label']
>>> '$$$/BTC'
希望有所帮助
答案 1 :(得分:2)
您没有提供太多细节,但是,您可能需要解码JSON响应。使用json
模块。这样的事情应该会有所帮助,但这取决于实际的反应:
import json
data = json.loads(response)
print(data['Data'][0])
<强>输出强>
{'TradePairId': 1261, 'Label': '$$$/BTC', 'AskPrice': 7.5e-07, 'BidPrice': 7.2e-07, 'Low': 7.1e-07, 'High': 7.5e-07, 'Volume': 92820.5864058, 'LastPrice': 7.3e-07, 'BuyVolume': 52598028.48552139, 'SellVolume': 7797125.25042393, 'Change': 2.82, 'Open': 7.1e-07, 'Close': 7.3e-07, 'BaseVolume': 0.06782329, 'BuyBaseVolume': 1.87597261, 'SellBaseVolume': 173448022.5864104}
在这种情况下,json.loads()
返回一个字典,实际数据是Data
键的值,它是一个字典列表。迭代字典:
for d in data['Data']:
print(d)
如果您使用requests
模块检索数据,则只需使用响应的json
方法即可访问已解码的数据。