通过 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'}