Python 使用默认值从字典列表中提取项
我想在下面的列表中使用列表理解Python 使用默认值从字典列表中提取项,python,dictionary,Python,Dictionary,我想在下面的列表中使用列表理解 movie_dicts = [ {'title':'A Boy and His Dog', 'year':1975, 'rating':6.6}, {'title':'Ran', 'year':1985, 'rating': 8.3}, {'year':2010, 'rating':8.0}, {'title':'Scanners', 'year':1981, 'rating': 6.7} ] 利用我对列表理解和词典的知识,我知道 title_year = [i
movie_dicts = [
{'title':'A Boy and His Dog', 'year':1975, 'rating':6.6},
{'title':'Ran', 'year':1985, 'rating': 8.3},
{'year':2010, 'rating':8.0},
{'title':'Scanners', 'year':1981, 'rating': 6.7}
]
利用我对列表理解和词典的知识,我知道
title_year = [i['title'] for i in movie_dicts]
print title_year
将打印包含电影标题的列表。然而,由于其中一个电影标题丢失,我收到以下错误
Traceback (most recent call last):
File "./loadjson.py", line 30, in <module>
title_year = [i['title'] for i in movie_dicts]
KeyError: 'title'
回溯(最近一次呼叫最后一次):
文件“/loadjson.py”,第30行,在
title_year=[i['title']代表电影中的i]
KeyError:“标题”
是否有任何方法可以检查电影标题是否存在,如果不存在,请在其位置放置默认值?使用返回缺少关键帧的默认值:
title_year = [i.get('title', '<untitled>') for i in movie_dicts]
使用返回缺少键的默认值:
title_year = [i.get('title', '<untitled>') for i in movie_dicts]
使用
如果指定的键不存在,则可以指定默认值。使用
如果指定的键不存在,则可以指定默认值。使用
.get(键,默认值)
避免KeyNotFound错误title\u year=[i.get('title')for i in movie dicts]
使用.get(键,默认值)
避免KeyNotFound错误title\u year=[i.get('title'))就我个人而言,我更喜欢第二个选项,因为它在阅读全文时更加明确code@jlnabais:但它产生不同的输出;列表中的项目将减少。如果这是更好的选择,则完全取决于您试图对列表执行的操作。当然,我知道我错过了他要求默认值的部分,在这种情况下,更好的答案是第一个解决方案,而不是字典列表的“过滤”版本。感谢您的帮助:)我个人更喜欢第二个选项,因为在阅读全文时更为明确code@jlnabais:但它产生不同的输出;列表中的项目将减少。如果这是更好的选择,这完全取决于你试图对列表做什么。当然,我知道我错过了他要求默认值的部分,在这种情况下,更好的答案是第一个解决方案,而不是字典列表的“过滤”版本。谢谢你的帮助:)谢谢你的帮助谢谢你的帮助
title_year = [i.get('title', 'defaultTitle') for i in movie_dicts]