Python 关于比特币价格的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

我使用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()
输出:

{'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
的值在每次调用函数时都会发生变化?如何?好的,它工作了,非常感谢你!!!