如何使用 Python 从 tmdB 中提取数据
How to Extract Data from tmdB using Python
我找到了来自 Movielens 的数据集 here。我的目标是将所有电影 overviews 添加到此数据集中,用于数据集中存在的所有电影 ID(数据集为 tmdb 和其他数据库提供电影 ID)。
我研究过开发者的tmdb documentation,但我每次只能提取单个电影的数据。我的目标是为我的数据框中包含的所有电影 ID 创建一个循环,并获取每部电影的“概览”。
我到达的最近点是:
pip install tmdbv3api
from tmdbv3api import TMDb
from tmdbv3api import Movie
tmdb = TMDb()
tmdb.api_key = 'my API Key'
tmdb.language = 'en'
tmdb.debug = True
movie = Movie()
# for example the movie with id=862
m = movie.details(862)
print (m.overview)
这将为我提供个人电影概述的理想结果,但是当我尝试创建如下所示的循环时,它完全失败了。这很可能是错误的,但我什至不知道是否可以基于 tmdb API:
movie = Movie()
id = movie.details(int(movies.tmdbId))
for id in movies["tmdbId"]: # my dataframe
if id in tmdb.Movies(int(tmdb_id)): # tmdb database
print (m.overview)
我也知道这可以通过 JSON 文件和 urllib.request 来完成,我看到的最接近的是 this,这也是关于每次一部电影。
请原谅您可能看到的任何错误,我是这个领域的新手。
提前致谢。
code snippet
我没有足够的代表发表评论,所以我会在这里指出这一点,看来您不太了解 for 循环的工作原理。您定义的 id 变量将被 for 循环中的 movies['tmdbId'] 的值覆盖。
至于解决方案试试这个。
movie = Movie()
id = movie.details(int(movies.tmdbId)) # Not sure why this variables is defined?
for id in movies["tmdbId"]: # my dataframe, I am assuming this is iterable
if movie.details(int(id)): # tmdb database,
m = movie.details(int(id))
print (m.overview)
@ibbs 谢谢!在您的帮助下,我终于达到了以下似乎有效的目的:
movie = Movie()
for id in movies["tmdbId"]:
try:
m= movie.details(id)
print(m.overview)
except:
# movie ids of the csv file no longer in tmdB
pass
我找到了来自 Movielens 的数据集 here。我的目标是将所有电影 overviews 添加到此数据集中,用于数据集中存在的所有电影 ID(数据集为 tmdb 和其他数据库提供电影 ID)。
我研究过开发者的tmdb documentation,但我每次只能提取单个电影的数据。我的目标是为我的数据框中包含的所有电影 ID 创建一个循环,并获取每部电影的“概览”。
我到达的最近点是:
pip install tmdbv3api
from tmdbv3api import TMDb
from tmdbv3api import Movie
tmdb = TMDb()
tmdb.api_key = 'my API Key'
tmdb.language = 'en'
tmdb.debug = True
movie = Movie()
# for example the movie with id=862
m = movie.details(862)
print (m.overview)
这将为我提供个人电影概述的理想结果,但是当我尝试创建如下所示的循环时,它完全失败了。这很可能是错误的,但我什至不知道是否可以基于 tmdb API:
movie = Movie()
id = movie.details(int(movies.tmdbId))
for id in movies["tmdbId"]: # my dataframe
if id in tmdb.Movies(int(tmdb_id)): # tmdb database
print (m.overview)
我也知道这可以通过 JSON 文件和 urllib.request 来完成,我看到的最接近的是 this,这也是关于每次一部电影。
请原谅您可能看到的任何错误,我是这个领域的新手。
提前致谢。
code snippet
我没有足够的代表发表评论,所以我会在这里指出这一点,看来您不太了解 for 循环的工作原理。您定义的 id 变量将被 for 循环中的 movies['tmdbId'] 的值覆盖。
至于解决方案试试这个。
movie = Movie()
id = movie.details(int(movies.tmdbId)) # Not sure why this variables is defined?
for id in movies["tmdbId"]: # my dataframe, I am assuming this is iterable
if movie.details(int(id)): # tmdb database,
m = movie.details(int(id))
print (m.overview)
@ibbs 谢谢!在您的帮助下,我终于达到了以下似乎有效的目的:
movie = Movie()
for id in movies["tmdbId"]:
try:
m= movie.details(id)
print(m.overview)
except:
# movie ids of the csv file no longer in tmdB
pass