#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:
Предполагая, что это чистый 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])
в строке, где или вы можете сделать это с помощью