此代码与具有剧情关键字的电影ID完美搭配。
from imdb import IMDb
ia = IMDb()
black_panther = ia.get_movie('1825683', info='keywords')
print(black_panther['keywords'])
对于没有绘制此类ID(5950092)这样的关键字的电影,bur返回异常。是否有处理异常的想法?
答案 0 :(得分:1)
由于imdb.Movie.Movie
是imdb.utils._Container
的子类,具有类似于that of a dict
的get
方法,并且文档字符串读取为:
>>> imdb.utils._Container.get.__doc__
"Return the given section, or default if it's not found."
这意味着您可以执行以下操作以在没有关键字的情况下永远不会引发异常:
movie = ia.get_movie('5950092', info='keywords')
movie.get('keywords', [])
# Result: [], empty list
如果您愿意,也可以使用Exception
:
try:
keywords = movie['keywords']
except KeyError:
keywords = []
答案 1 :(得分:0)
在IMDbPY中,Movie实例的行为类似于字典,因此您以通常的方式(使用try / except子句)处理异常。参见{{3}}
作为类字典的对象,您还可以使用'keywords' in black_panther
测试键是否存在,并在不引发n异常的情况下获取值,但是如果缺少键,则返回{None,并使用black_panther.get('keywords')
。