分析JSON字符串并存储在变量中



嗨,伙计们,我正在调用这个API来查看Coingecko价格的实时数据,我正在尝试解析json文件,但当我使用json.loads时,我的代码中不断出现错误。我导入了json,但仍然得到这个错误

这是我的代码片段

import json
import requests
class LivePrice(object):   #Coingecko API
def GetPrice(self, coin):
coinprice = coin
Gecko_endpoint = 'https://api.coingecko.com/api/v3/simple/price?ids='
currency  = '&vs_currencies=usd'
url = Gecko_endpoint + coinprice + currency
r = requests.get(url, headers = {'accept': 'application/json'})
y = json.loads(r)  
#print(r.json()[coinprice]['usd']) 

如果我使用这个打印函数,我会得到价格,但我希望能够使用变量并将其传递给另一个类来进行一些计算

只是尝试制作一个简单的交易机器人,同时使用Alpaca API进行纸张交易

Traceback (most recent call last):
File "AlapacaBot.py", line 76, in <module>
r.GetPrice(Bitcoin)
File "AlapacaBot.py", line 65, in GetPrice
y = json.loads(r)  
File "/usr/lib/python3.8/json/__init__.py", line 341, in loads
raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not Response

我正在学习w3schools的例子,但我总是出错https://www.w3schools.com/python/python_json.asp

json.loads只接受错误中列出的类型。

requestsget方法返回一个Response对象,而不是这些类型中的一个。W3Schools链接不能替代Python请求模块文档,因为它只显示字符串,而不显示Response对象。

响应对象有一个json()函数,用于将主体作为字典获取,您注释掉了

r = requests.get(url, headers = {'accept': 'application/json'})
y = r.json()
print(y[coin]['usd']) 

您的代码几乎是正确的。您只需要使用requests.json((来检索json信息

import json
import requests
class LivePrice:   #Coingecko API
def GetPrice(coin):
coinprice = coin
Gecko_endpoint = 'https://api.coingecko.com/api/v3/simple/price?ids='
currency  = '&vs_currencies=usd'
url = Gecko_endpoint + coinprice + currency
r = requests.get(url, headers = {'accept': 'application/json'})
y = r.json()  
print(y[coinprice]['usd']) 
LivePrice.GetPrice("bitcoin")

最新更新