在 python 上仅打印部分答案

Print only a part of the answer on python

我使用 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: unexpected EOF while parsing

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

试试这个

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'))

这应该有效。

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

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

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

因此,如果您要引用内部集合中的内容,则必须按照键进行操作。

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.')

简单的答案。 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])