Как обрабатывать исключения, используя 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'),

Другие вопросы по тегам