通过 python 中的列表理解从字典中获取字典中的所有项目多天
Getting all item from dictionary inside dictionary by list comprehension in python for multiple days
我正在尝试制作一个简单的天气应用程序,并且我正在尝试通过列表理解获取所有图标。我找不到办法做到这一点,也找不到任何解决方案,所以如果有人知道,请告诉我。
这是我从网络 API 获得的数据。我有能力在几天内完成单个任务,但我找不到列表理解的方法
谢谢
我当前的代码:
data = {
'icon': response['data'][0]['weather']['icon'],
'icon2': response['data'][1]['weather']['icon'],
'icon3': response['data'][2]['weather']['icon'],
'icon4': response['data'][3]['weather']['icon'],
}
我想要这样的东西
data = {
icons = #list comprehension
}
api 结果
{'data': [{'app_max_temp': 12.2, 'weather': {'icon': 'c01d', 'code': 800, 'description': 'Clear
Sky'}'min_temp': 5,
{ 'app_max_temp': 13.7, 'weather': {'icon':'c01d','code': 800, 'description': 'Clear Sky'},
'min_temp': 5,
{'app_max_temp': 12.1, 'weather': {'icon': 'c02d', 'code': 802, 'description': 'Scattered
clouds'}'min_temp': 8,
{ 'app_max_temp': 11.8, 'weather': {'icon': 'r01d', 'code': 500, 'description':
'Light rain'}, 'min_temp': 6,}
你能试试这个吗:
icons = [row['weather']['icon'] for row in api_result['data']]
如果您的 api 结果更正为:
api_result = {'data':
[{'app_max_temp': 12.2,
'weather': {'icon': 'c01d', 'code': 800, 'description': 'Clear Sky'},
'min_temp': 5},
{ 'app_max_temp': 13.7,
'weather': {'icon':'c01d','code': 800, 'description': 'Clear Sky'},
'min_temp': 5},
{'app_max_temp': 12.1,
'weather': {'icon': 'c02d', 'code': 802, 'description': 'Scattered clouds'},
'min_temp': 8},
{ 'app_max_temp': 11.8,
'weather': {'icon': 'r01d', 'code': 500, 'description': 'Light rain'},
'min_temp': 6,}
]}
然后使用枚举函数来帮助命名您的键,您可以执行如下操作。
data = {f'icon{icon_index}': icon['weather']['icon']
for icon_index, icon in enumerate(api_result['data'], start=1)}
它输出:
{'icon1': 'c01d', 'icon2': 'c01d', 'icon3': 'c02d', 'icon4': 'r01d'}
我正在尝试制作一个简单的天气应用程序,并且我正在尝试通过列表理解获取所有图标。我找不到办法做到这一点,也找不到任何解决方案,所以如果有人知道,请告诉我。 这是我从网络 API 获得的数据。我有能力在几天内完成单个任务,但我找不到列表理解的方法 谢谢
我当前的代码:
data = {
'icon': response['data'][0]['weather']['icon'],
'icon2': response['data'][1]['weather']['icon'],
'icon3': response['data'][2]['weather']['icon'],
'icon4': response['data'][3]['weather']['icon'],
}
我想要这样的东西
data = {
icons = #list comprehension
}
api 结果
{'data': [{'app_max_temp': 12.2, 'weather': {'icon': 'c01d', 'code': 800, 'description': 'Clear
Sky'}'min_temp': 5,
{ 'app_max_temp': 13.7, 'weather': {'icon':'c01d','code': 800, 'description': 'Clear Sky'},
'min_temp': 5,
{'app_max_temp': 12.1, 'weather': {'icon': 'c02d', 'code': 802, 'description': 'Scattered
clouds'}'min_temp': 8,
{ 'app_max_temp': 11.8, 'weather': {'icon': 'r01d', 'code': 500, 'description':
'Light rain'}, 'min_temp': 6,}
你能试试这个吗:
icons = [row['weather']['icon'] for row in api_result['data']]
如果您的 api 结果更正为:
api_result = {'data':
[{'app_max_temp': 12.2,
'weather': {'icon': 'c01d', 'code': 800, 'description': 'Clear Sky'},
'min_temp': 5},
{ 'app_max_temp': 13.7,
'weather': {'icon':'c01d','code': 800, 'description': 'Clear Sky'},
'min_temp': 5},
{'app_max_temp': 12.1,
'weather': {'icon': 'c02d', 'code': 802, 'description': 'Scattered clouds'},
'min_temp': 8},
{ 'app_max_temp': 11.8,
'weather': {'icon': 'r01d', 'code': 500, 'description': 'Light rain'},
'min_temp': 6,}
]}
然后使用枚举函数来帮助命名您的键,您可以执行如下操作。
data = {f'icon{icon_index}': icon['weather']['icon']
for icon_index, icon in enumerate(api_result['data'], start=1)}
它输出:
{'icon1': 'c01d', 'icon2': 'c01d', 'icon3': 'c02d', 'icon4': 'r01d'}