Python – imDbPy example not working : ‘key error’

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/.

Related Problems and Solutions