【问题标题】:Print only a part of the answer on python在 python 上只打印部分答案
【发布时间】:2021-03-10 21:03:53
【问题描述】:

我使用 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': '14161.84281800',
  '6. Last Refreshed': '2020-11-28 09:32:04',
  '7. Time Zone': 'UTC',
  '8. Bid Price': '14161.61726000',
  '9. Ask Price': '14161.62561400'}}

但我的目的是只有汇率所以只打印 14161.84281800 而不是其他信息。

我试过这个:

print(resp.json('5. Exchange Rate')

但我有一个 SyntaxError:解析时出现意外 EOF

是否可以只打印汇率,还是我必须先执行所有信息,然后隔离汇率以将其用于其他代码?

【问题讨论】:

    标签: python finance bitcoin alpha-vantage


    【解决方案1】:

    试试这个

    a={'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': '14161.84281800',
      '6. Last Refreshed': '2020-11-28 09:32:04',
      '7. Time Zone': 'UTC',
      '8. Bid Price': '14161.61726000',
      '9. Ask Price': '14161.62561400'}}
    k=a.get('Realtime Currency Exchange Rate')
    print(k.get('5. Exchange Rate'))
    

    先将json数据存入一个变量,然后使用这个程序

    or
    

    将 json 数据存储在“a”变量中,然后使用此打印

    print(a.get('Realtime Currency Exchange Rate').get('5. Exchange Rate'))
    

    【讨论】:

    • 好的,它可以工作。谢谢你。执行我的 API 时是否可以仅打印汇率,或者我必须执行然后使用此代码?
    • 在你的程序中使用它
    • a=resp.json() 然后 print(a.get('Realtime Currency Exchange Rate').get('5. Exchange Rate'))
    • 很高兴为您提供帮助
    【解决方案2】:

    这应该可行。

    print(resp.json()['Realtime Currency Exchange Rate']['5. Exchange Rate'])

    您看到的错误是因为您没有正确结束打印语句。应该有两个 ) 括号。

    但即使这样你也会得到一个错误,因为 json 就像字典中的字典等等。

    因此,如果您要引用内部集合中的某些内容,则必须遵循键。

    【讨论】:

    • 很高兴它有帮助。
    【解决方案3】:

    resp.json() 的调用将生成字典。您可以像这样访问数据

    exchange = resp.json()
    print(exchange['Realtime Currency Exchange Rate']['5. Exchange Rate'])
    

    使用try/except 捕获可能发生的任何KeyError 错误。

    try:
        print(exchange['Realtime Currency Exchange Rate']['5. Exchange Rate'])
    except KeyError:
       print('Could not fetch exchange rate.')
    

    【讨论】:

    • 好的,谢谢!我想每 80 秒执行一次代码,没有任何条件。你知道是否可以这样做并保存最后的 X Echange 价格?
    【解决方案4】:

    简单的答案。 print(resp.json()['Realtime Currency Exchange Rate']['5. Exchange Rate'])

    你可以使用 for 循环获取所有值

    dataArr = resp.json()['Realtime Currency Exchange Rate']
    for valuekey in dataArr:
       print(valuekey, dataArr[valuekey])
    

    【讨论】:

      猜你喜欢
      • 2023-01-29
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多