как обрабатывать исключения с использованием IMDBPY - PullRequest
0 голосов
/ 05 ноября 2018

этот код прекрасно работает с идентификатором фильма, в котором есть ключевое слово plot.

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

bur для фильмов, в которых нет такого ключевого слова, как этот идентификатор (5950092), возвращается исключение. Какая-либо идея для дескриптора исключения?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Так как 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 = []
0 голосов
/ 05 ноября 2018

В IMDbPY экземпляры Movie ведут себя как словари, поэтому вы обрабатываете исключения обычным способом (с предложением try / exception). Смотри https://docs.python.org/3/tutorial/errors.html#handling-exceptions

Будучи объектами, подобными словарю, вы также можете проверить наличие ключа с помощью 'keywords' in black_panther и получить значение, не вызывая исключения n, но возвращая None, если ключ отсутствует, с помощью black_panther.get('keywords').

...