0

此代码与具有 plot 关键字的电影 ID 完美配合。

from imdb import IMDb
ia = IMDb()
black_panther = ia.get_movie('1825683', info='keywords')
print(black_panther['keywords'])

bur 对于没有像这个id(5950092)这样的关键字的电影,它返回异常。处理异常有什么想法吗?

4

2 回答 2

2

由于imdb.Movie.Movie是 的子类,imdb.utils._Containerget方法类似于adict,其文档字符串读取:

>>> 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如果您愿意,也可以使用 an :

try:
    keywords = movie['keywords']
except KeyError:
    keywords = []
于 2018-11-05T08:44:01.367 回答
0

在 IMDbPY 中,Movie 实例的行为类似于字典,因此您以通常的方式处理异常(使用 try/except 子句)。请参阅https://docs.python.org/3/tutorial/errors.html#handling-exceptions

作为类字典对象,您还可以使用 测试键是否存在'keywords' in black_panther并获取值而不引发 n 异常,但如果键丢失,则返回 None ,使用black_panther.get('keywords').

于 2018-11-05T08:34:28.090 回答