imDbPy example not working : ‘key error’… here is a solution to the problem.
imDbPy example not working : ‘key error’
I copied the example from the imDbPy page.
# Create the object that will be used to access the IMDb's database.
ia = imdb. IMDb() # by default access the web.
# Search for a movie (get a list of Movie objects).
s_result = ia.search_movie('The Untouchables')
# Print the long imdb canonical title and movieID of the results.
for item in s_result:
print(item['long imdb canonical title'], item.movieID)
# Retrieves default information for the first result (a Movie object).
the_unt = s_result[0]
ia.update(the_unt)
# Print some information.
print(the_unt['runtime'])
print(the_unt['rating'])
director = the_unt['director'] # get a list of Person objects.
I now get this critical error :
Traceback (most recent call last):
File "C:\Artificial Intelligence\Machine Learning\movie_classification.py", line 76, in <module>
print(the_unt['runtime'])
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\imdb\utils.py", line 1467, in __getitem__
rawData = self.data[key]
KeyError: 'runtimes'
[Finished in 3.6s with exit code 1]
[shell_cmd: python -u "C:\Artificial Intelligence\Machine Learning\movie_classification.py"]
[dir: C:\Artificial Intelligence\Machine Learning]
[path: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin; C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\libnvvp; C:\Windows\system32; C:\Windows; C:\Windows\System32\Wbem; C:\Windows\System32\WindowsPowerShell\v1.0\; C:\Program Files\dotnet\; C:\Program Files\Microsoft SQL Server\130\Tools\Binn\; C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common; C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64; C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Scripts; C:\Program Files (x86)\GtkSharp\2.12\bin; C:\Users\lordp\AppData\Local\Microsoft\WindowsApps; ]
As I understand it, “runtime” does not exist as a key.
The keys I can use are these (the_unt.keys()):
['title', 'kind', 'year', 'akas', 'plot', 'canonical title', 'long imdb title', 'long imdb canonical title', 'smart canonical title', 'smart long imdb canonical title']
But according to the internet, I should have more options.
As far as I can tell, I installed imDbPy correctly.
Does anyone know about this issue?
Solution
Unfortunately, recent changes to the IMDb website page have broken most of IMDbPY. See this discussion: https://github.com/alberanid/imdbpy/issues/103
Unfortunately, there’s not much you can do except use (a small amount) of data from http://www.imdb.com/interfaces/.