python - 在 Python 中从 JSON 访问值
问题描述
嗨,我正在尝试学习 python。我正在尝试获取美元对澳元的汇率。但我正在努力从存储在数据中的 JSON 中访问信息。我将如何在“conversion_rates”中获得“AUD”:1.4817:
# Where USD is the base currency you want to use
url = 'https://v6.exchangerate-api.com/v6/MY_API_KEY/latest/USD'
# Making our request
response = requests.get(url)
data = response.json()
这是存储在数据中的内容
{
"result": "success",
"documentation": "https://www.exchangerate-api.com/docs",
"terms_of_use": "https://www.exchangerate-api.com/terms",
"time_last_update_unix": 1585267200,
"time_last_update_utc": "Fri, 27 Mar 2020 00:00:00 +0000",
"time_next_update_unix": 1585353700,
"time_next_update_utc": "Sat, 28 Mar 2020 00:00:00 +0000",
"base_code": "USD",
"conversion_rates": {
"USD": 1,
"AUD": 1.4817,
"BGN": 1.7741,
"CAD": 1.3168,
"CHF": 0.9774,
"CNY": 6.9454,
"EGP": 15.7361,
"EUR": 0.9013,
"GBP": 0.7679,
"...": 7.8536,
"...": 1.3127,
"...": 7.4722, etc. etc.
}
}
谢谢
解决方案
response.json()
将 json-data 作为dict
. 您可以通过dict[key]
或访问字典dict.get(key, default)
。如果找不到密钥,第一个将引发异常。如果未找到密钥或您为get
-call 提供的默认值,则第二个返回默认值 None 。
因此,在您的情况下,它将是:
data['conversion_rates']['AUD']
或者例如
data.get('conversion_rates', default={}).get('AUD')
您可能想选择第一个机会,并用 try/catch 包围它:
try:
aud_conversion_rate = data['conversion_rates']['AUD']
except KeyError:
print("Could not get the USD to AUD conversion rate")
供参考:https ://docs.python.org/3/tutorial/datastructures.html#dictionaries
推荐阅读
- c++ - 我有问题要检查输入是字符串还是数字
- amazon-web-services - 为同一服务器使用多个证书
- python - 使用 gitpython 将 git 存储库克隆到非空目录中
- javascript - JS 承诺丢失数据变量
- selenium - 在 selenium 中如何使用 xpath 选择所有不在具有特定类名的 div 中的 imgs
- reactjs - Jest + Enzyme + ReduxForm 单元测试渲染问题
- ios - 添加任何包后无法运行颤振项目
- c++ - 如何在函数的递归调用之间传递值?
- reactjs - 关于高级聊天的MongoDB聚合帮助
- php - url.intended 是如何设置的?