Как получить идентификатор фильма IMDB из imdbpy?

#python #imdbpy

Вопрос:

Модуль Python imdbpy позволяет осуществлять поиск по названию фильма.

Пример:

 
import imdb


ia = imdb.IMDb()

search_movie = ia.search_movie('Ready Player One')
 

Результат:

 
[<Movie id:1677720[http] title:_Ready Player One (2018)_>, <Movie id:8183756[http] title:_"Projector" Ready Player One (2018)_>, <Movie id:13695838[http] title:_"Big Pauly Talks Movies" Ready Player One (2018)_>, <Movie id:8045574[http] title:_"Ready Player One LIVE at SXSW" (2018)_>, ...]

 

Как извлечь первое Movie id из результатов?

Пытался:

  • Хотя print(search_movie[0]['title']) возвращает название, они не работают:
    • print(search_movie[0]['Movie id'])
    • print(search_movie[0]['id'])

Ответ №1:

Быстрая проверка исходного кода показывает, что вы хотите print(search_movie[0]['movieID']) или print(search_movie[0].getID() .

Комментарии:

1. Спасибо. Я буду работать над чтением источника. Вы заглядывали сюда ?

2. А, теперь я понимаю. ССЫЛКА 1 , ССЫЛКА 2

Ответ №2:

Предполагая, что это чистый Python, а не Xytron, ваш поиск возвращает переменную типа list, и, как вы обнаружили, первый результат можно изолировать с помощью…

Попробуйте распечатать( search_movie[0] )

Содержимое search_movie[0] представляет собой простую текстовую строку. Способ состоит в том, чтобы захватить цифры между id: и [http]

Если модуль IMDb не может предоставить вам точный формат, который вы хотите, вы можете манипулировать результатом с помощью поиска, чтобы получить положение [http] и предположить, что началом разреза будет число символов 10 (начиная с 0).

 endCut = search_movie[0].find("[http]")

MovieID= search_movie[0][10, endCut]
 

MovieID будет строкой. Чтобы сделать его целым числом, вам нужно будет сделать
MovieID= int(search_movie[0][10, endCut]) в строке, где или вы можете сделать это с помощью