Python 关于比特币价格的API循环问题
我使用API更新比特币价格 以下代码为我提供了很多信息:Python 关于比特币价格的API循环问题,python,api,finance,Python,Api,Finance,我使用API更新比特币价格 以下代码为我提供了很多信息: resp = requests.get('https://www.alphavantage.co/query', params={ 'function': 'CURRENCY_EXCHANGE_RATE', 'from_currency': 'BTC', 'to_currency': 'EUR', 'apikey': AV_API_KEY }) resp resp.json() 输出: {'Realt
resp = requests.get('https://www.alphavantage.co/query', params={
'function': 'CURRENCY_EXCHANGE_RATE',
'from_currency': 'BTC',
'to_currency': 'EUR',
'apikey': AV_API_KEY
})
resp
resp.json()
输出:
{'Realtime Currency Exchange Rate': {'1. From_Currency Code': 'BTC',
'2. From_Currency Name': 'Bitcoin',
'3. To_Currency Code': 'EUR',
'4. To_Currency Name': 'Euro',
'5. Exchange Rate': '16006.64235500',
'6. Last Refreshed': '2020-11-30 14:12:04',
'7. Time Zone': 'UTC',
'8. Bid Price': '16006.64235500',
'9. Ask Price': '16006.65069000'}}
我只想要5个。汇率和每10秒更新一次价格,所以我尝试了以下方法:
resp = requests.get('https://www.alphavantage.co/query', params={
'function': 'CURRENCY_EXCHANGE_RATE',
'from_currency': 'BTC',
'to_currency': 'EUR',
'apikey': AV_API_KEY
})
resp
resp.json()
a=resp.json()
def update_price_10sec():
print(a.get('Realtime Currency Exchange Rate').get('5. Exchange Rate'))
while True:
update_price_10sec()
time.sleep(10) #make function to sleep for 10 seconds
然后输出为:
16006.64235500
16006.64235500
16006.64235500
16006.64235500
16006.64235500
(etc...)
所以问题是价格不再更新,每10秒我就有一份上一次已知价格的拷贝粘贴。有人知道如何修复它吗?您应该将API调用移动到
update\u price\u 10sec
函数中。这将再次调用它,并确保您有最新的价格
def update_price_10sec():
# Your API call
print(a.get('Realtime Currency Exchange Rate').get('5. Exchange Rate'))
如果不在函数中调用API,它只会继续提供与第一次调用时相同的数据。似乎需要将请求放入while循环中
def GET():
resp = requests.get('https://www.alphavantage.co/query', params={
'function': 'CURRENCY_EXCHANGE_RATE',
'from_currency': 'BTC',
'to_currency': 'EUR',
'apikey': AV_API_KEY
})
return resp.json()
def update_price_10sec(a):
print(a.get('Realtime Currency Exchange Rate').get('5. Exchange Rate'))
while True:
update_price_10sec(GET())
time.sleep(10) #make function to sleep for 10 seconds
我试过了,但这段代码不起作用,仍然存在相同的问题:def update_price_10sec():print(a.get('Realtime Currency Exchange Rate').get('5.Exchange'))resp=requests.get('',params={'function':'Currency_Exchange_Rate','from_Currency':'BTC','to_Currency':'EUR apike':AV API_KEY})resp.json()你需要用json响应重新分配你的“a”变量。我在最后添加了“a=resp.json()”,但它没有解决这个问题,我不明白为什么-你的api调用-覆盖a-打印你应该按照这个顺序构建函数的数据谢谢你的帮助!!这不是一件容易的事。您是否希望
a
的值在每次调用函数时都会发生变化?如何?好的,它工作了,非常感谢你!!!