猿问

从 api dict 响应中获取价值

我使用 Bitmex API 的请求,我试图从 get 请求中获取 lastPrice 值。


我将响应存储到一个变量中,尝试了几种方法来提取 lastPrice 值,包括 print(value[1]) print(value['lastPrice'],所有这些都不起作用,我已经在这里阅读了一段时间了似乎找不到正确的工作方式来获取价值。抱歉,如果一直被问到这个问题。


import requests


r = requests.get('https://www.bitmex.com/api/v1/instrument?symbol=XBT&columns=lastPrice&count=1&reverse=true')


value = r.text

print(value)

#print(value[1]) 

#print(value['lastPrice'])

这个的输出是


[{"symbol":"XBTUSD","timestamp":"2019-10-03T22:37:13.085Z","lastPrice":8190.5}]

使用 value[1] 只返回打印中的第一个字母。所以对于 ex [1] 返回 { 并使用 ['lastPrice'] 返回 TypeError: string indices must be integers


猛跑小猪
浏览 81回答 1
1回答

江户川乱折腾

您的返回值是 JSON 字符串,您可以使用response.json()它来将其解码为 python dict。结果包含list单个元素,因此您应该参考第一个元素,list然后dict按键获取值:r = requests.get('https://www.bitmex.com/api/v1/instrument?symbol=XBT&columns=lastPrice&count=1&reverse=true')value = r.json()print(value[0]['lastPrice'])
随时随地看视频慕课网APP

相关分类

Python
我要回答