簡體   English   中英

如何使用 Python 從 tmdB 中提取數據

[英]How to Extract Data from tmdB using Python

我在這里找到了來自 Movielens 的數據集。 我的目標是將數據集中存在的所有電影 ID 的所有電影概述添加到該數據集中(該數據集為 tmdb 和其他數據庫提供電影 ID)。

我為開發人員研究了 tmdb文檔,但我每次只能提取單個電影的數據。 我的目標是為我的 dataframe 中包含的所有電影 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 ,這同樣是關於每次一部電影。

請原諒我可能看到的任何錯誤,我是這個領域的新手。

先感謝您。

代碼片段

@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 

我沒有足夠的代表發表評論,所以我會在這里指出這一點,您似乎不太了解 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM