我有一本字典,如下所示:
{'items': [{'id': 1151, 'name': 'Sun'},
{'id': 1152, 'name': 'Rain'},
{'id': 1168, 'name': 'Clouds'},
{'id': 1169, 'name': 'Clear'},
{'id': 1170, 'name': 'Mist'},
{'id': 1171, 'name': 'Fog'},
{'id': 1231, 'name': 'Drizzle'}]}
根据有关“雾”或“毛毛雨”等天气的信息,我应该组成一个集合:
info = {a: 0,
'weather_id': 1170,
'some parameter': 0,
'vbla': None,
'ff': some value}
我应该在哪里绘制天气状况图。目前,我只是为每种情况编写了IF条件,这当然是非常愚蠢的:
if weatherConditions=='Clouds':
info = {a: 0,
'weather_id': 1168,
'some parameter': 0,
'vbla': None,
'ff': some value}
您能帮我解决我的问题吗?
答案 0 :(得分:2)
更改您的dict
,使键为name
,而id
为值,这会容易得多(假设天气name
永远不会重复):
def get_weather_info(new_dic, weather):
if weather in new_dic:
return {
'a': 0,
'weather_id': new_dic[weather],
'some parameter': 0,
'vbla': None,
'ff': None
}
d = {'items': [{'id': 1151, 'name': 'Sun'},
{'id': 1152, 'name': 'Rain'},
{'id': 1168, 'name': 'Clouds'},
{'id': 1169, 'name': 'Clear'},
{'id': 1170, 'name': 'Mist'},
{'id': 1171, 'name': 'Fog'},
{'id': 1231, 'name': 'Drizzle'}]}
new_dic = {dic['name']: dic['id'] for dic in d['items']}
info = get_weather_info(new_dic, 'Rain')
print(info)
答案 1 :(得分:1)
您可以将“ Sun”,“ Rain”,“ Clouds”等用作键值并具有嵌套的字典。可能会变得凌乱,但它会做您需要的事情
答案 2 :(得分:1)
我假设您面临的挑战是提取与“ weatherConditions”变量值相对应的正确ID。通过循环浏览已概述的字典结构并拉出与其对应的ID(您必须将其映射到要包含在集合中的正确的额外变量集合中),可以通过以下方法来做到这一点:>
my_dict = {'items': [{'id': 1151, 'name': 'Sun'},
{'id': 1152, 'name': 'Rain'},
{'id': 1168, 'name': 'Clouds'},
{'id': 1169, 'name': 'Clear'},
{'id': 1170, 'name': 'Mist'},
{'id': 1171, 'name': 'Fog'},
{'id': 1231, 'name': 'Drizzle'}]}
weatherConditions='Clouds'
for x in range(len(my_dict['items'])):
if weatherConditions == my_dict['items'][x]['name']:
print(my_dict['items'][x]['id'])