Как обрабатывать исключения, используя IMDBPY
Этот код прекрасно работает с идентификатором фильма, который имеет ключевое слово plot.
from imdb import IMDb
ia = IMDb()
black_panther = ia.get_movie('1825683', info='keywords')
print(black_panther['keywords'])
Однако, для фильмов, в которых отсутствует ключевое слово, например, этот идентификатор (5950092), он возвращает исключение. Есть идеи для обработки исключений?
2 ответа
Поскольку imdb.Movie.Movie
это подкласс imdb.utils._Container
с get
метод похож на метод dict
и какая строка документа гласит:
>>> 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 = []
В IMDbPY экземпляры Movie ведут себя как словари, поэтому вы обрабатываете исключения обычным способом (с предложением try / исключением). См. https://docs.python.org/3/tutorial/errors.html
Будучи похожими на словарь объектами, вы также можете проверить наличие ключа с помощью 'keywords' in black_panther
и получить значение, не вызывая исключения n, но возвращая None, если ключ отсутствует, с помощью black_panther.get('keywords')
,