【问题标题】:How to get filmography of a person with IMDbpy如何获得 IMDbpy 人的影片
【发布时间】:2021-10-15 09:55:18
【问题描述】:

我希望能够为脚本提供一个人的 IMDB ID,然后脚本将打印出该人的电影。

这是我目前的代码:

import imdb
moviesDB = imdb.IMDb()
#PeterDinklage IMDB ID
ActorId = "0227759"
person = moviesDB.get_person(ActorId)
#Actor's name
print (person)
actor_work = moviesDB.get_person_filmography(ActorId)

print (actor_work['data']['filmography']['actor'])

这会给我一个混乱的输出,看起来像这样:

[<Movie id:6674864[http] title:_The Dwarf () (None)_>, <Movie id:2028582[http] title:_The Wild Bunch (2022)_>, <Movie id:4058618[http] title:_The Thicket () (None)_>, ...]

我可以解析这个输出以获得我想要的格式,但我想知道是否有更简洁的方法来获取信息,以便输出看起来更像这样:

The Dwarf ()
The Wild Bunch (2022)
The Thicket ()
...

我意识到我可以用这样的 for 循环做一些事情:

for movie in actor_work['data']['filmography']['actor'] :
    print (movie)

但这只会给我一个带有电影名称的输出,而不包括电影或电视节目的年份。

【问题讨论】:

标签: python imdb imdbpy


【解决方案1】:

我可以通过使用电影对象年来做到这一点。如果电影没有列出年份,它将出错。例如,如果演员有一部未指定上映日期的即将上映的电影。所以要解决这个问题,你可以使用 try 和 except

这是我使用的代码:

import imdb
moviesDB = imdb.IMDb()

#PeterDinklage IMDB ID
ActorId = "0227759"
person = moviesDB.get_person(ActorId)
#Actor's name
print (person)
actor_work = moviesDB.get_person_filmography(ActorId)
for movie in actor_work['data']['filmography']['actor'] :
    try:
        print (movie.movieID, movie['title'], movie.currentRole, movie['year'])
    except KeyError:
        #print("No Year for the movie")
        print (movie.movieID, movie['title'], movie.currentRole)

【讨论】:

    猜你喜欢
    • 2016-12-27
    • 2010-09-21
    • 2022-01-22
    • 2019-05-22
    • 2019-07-24
    • 2021-11-24
    • 1970-01-01
    • 2021-12-31
    • 2015-06-20
    相关资源
    最近更新 更多