[{'YEAR': 2016.0, 'DOY': 310.0, 'temperature': 12.55, 'min_temp': 10.61, 'max_temp': 14.19, 'field_id': 1, 'date': Timestamp('2016-11-05 00:00:00')}, {'YEAR': 2016.0, 'DOY': 311.0, 'temperature': 14.89, 'min_temp': 12.6, 'max_temp': 17.49, 'field_id': 1, 'date': Timestamp('2016-11-06 00:00:00')}]
在上面的字典列表中,我只想保留 foll。此列表中的键:['YEAR', 'temperature']
从过滤字典只包含某些键?,我可以将 dict 过滤为仅某些键,如下所示:
new_dict = { your_key: old_dict[your_key] for your_key in your_keys }
-- 更新:如果your_key
字典中不存在key from ,则soln 也应该工作
将列表理解与 dict 理解结合起来得到字典列表:
>>> lst = [{'YEAR': 2016.0, 'DOY': 310.0, 'temperature': 12.55,
'min_temp': 10.61, 'max_temp': 14.19, 'field_id': 1,
'date': Timestamp('2016-11-05 00:00:00')},
{'YEAR': 2016.0, 'DOY': 311.0, 'temperature': 14.89,
'min_temp': 12.6, 'max_temp': 17.49, 'field_id': 1,
'date': Timestamp('2016-11-06 00:00:00')}]
>>> keys_to_retain = ['YEAR', 'temperature']
>>> [{key: d[key] for key in keys_to_retain} for d in lst]
[{'YEAR': 2016.0, 'temperature': 12.55}, {'YEAR': 2016.0, 'temperature': 14.89}]
UPDATE根据问题的变化
即使字典中不存在来自 your_key 的键,为了使 dict 理解工作,请使用if
子句:
[{key: d[key] for key in keys_to_retain if key in d} for d in lst]
^^^^^^^^^^^
或者,如果您希望结果字典具有缺失键的默认值,您可以使用dict.get
默认值而不是dict[..]
:
[{key: d.get(key, 'default_value') for key in keys_to_retain} for d in lst]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句