【问题标题】:Use a part of an output as input使用输出的一部分作为输入
【发布时间】:2020-11-27 23:07:42
【问题描述】:

我正在寻找我无法解决的问题:

我有一个代码通过 API 加载数据并返回比特币的最后已知价格和其他信息。代码是:

resp = requests.get('https://www.alphavantage.co/query', params={
    'function': 'CURRENCY_EXCHANGE_RATE',
    'from_currency': 'XRP', 
    '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': '14322.63532',
   '6. Last Refreshed': '2020-11-27 22:59:05',
   '7. Time Zone': 'UTC',
   '8. Bid Price': '0.46113245',
   '9. Ask Price': '0.46117422'}}

我只想使用汇率值 (14322.63532),然后将其与两分钟后的汇率进行比较,以了解百分比变化。

有人对我如何隔离其余输出的汇率有任何线索吗?

谢谢!

编辑:

我试过了


newdict = {} 
newdict['Realtime Currency Exchange Rate']['5. Exchange Rate'] 

但我有 KeyError: '实时货币汇率'

【问题讨论】:

  • 这看起来像一个字典。试试mydict['Realtime Currency Exchange Rate']['5. Exchange Rate'](使用你给变量取的任何名字,而不是mydict
  • @JohnGordon 好的,谢谢。我试过这个。 newdict = {} newdict["实时货币汇率"]['5. Exchange Rate'] 但我有 KeyError: 'Realtime Currency Exchange Rate'
  • 你说你“有这个输出”——你是怎么在你的代码中得到它的?是什么握着它?你定义的newdict 是空的,所以它当然找不到任何键——你是如何加载数据的?您说您“有代码”,请在此处分享相关部分。
  • 您需要引用原始字典的元素,而不是新字典。
  • @Grismar 我正在通过 API 加载数据,代码是:resp = requests.get('alphavantage.co/query', params={ 'function': 'CURRENCY_EXCHANGE_RATE', 'from_currency': 'BTC', 'to_currency': 'EUR', 'apikey': AV_API_KEY }) resp.json()

标签: python api finance alpha-vantage


【解决方案1】:

newdict 必须是您显示的输出,而不是空字典。

newdict = {'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': '14322.63532',
   '6. Last Refreshed': '2020-11-27 22:59:05',
   '7. Time Zone': 'UTC',
   '8. Bid Price': '0.46113245',
   '9. Ask Price': '0.46117422'}
}
print(float(newdict['Realtime Currency Exchange Rate']['5. Exchange Rate']))

【讨论】:

  • 好的,谢谢你!还有其他方法吗?因为我想提取并打印 ['Realtime Currency Exchange Rate']['5.汇率'])在我获得汇率后自动,无需复制粘贴所有输出。有可能吗?
  • 如果您从 API 获取数据,则无需剪切和粘贴任何内容,它已经在变量中。
  • 我明白了。如果我每 2 分钟打印一次 API 代码,你知道我是否可以比较新旧输出的汇率吗?
  • 将之前的汇率保存在prev_exchange_rate这样的变量中,然后使用float(newdict['Realtime Currency Exchange Rate']['5. Exchange Rate']) - prev_exchange_rate
猜你喜欢
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
  • 2019-11-19
相关资源
最近更新 更多