Python TypeError: ‘dict’ object is not callable solution

By | November 16, 2021
Python TypeError ‘dict’ object is not callable solution

Dictionary is a standard Python data structure that stores the elements in the form of key:value pairs. To access an individual item from the dictionary we put the key name inside a square bracket [] . But if we use the parenthesis() we will receive the “TypeError: ‘dict’ object is not callable”.

In this guide, we will discuss the “dict object is not callable” error in detail and learn why Python raise it. We will also walk through a common case scenario where you may encounter this error. By the end of this error solution tutorial, you will have a complete idea about why this error raise in a Python program and how to solve it.

Python Error- TypeError: ‘dict’ object is not callable

Python Dictionary is a mutable data structure, and it has a data type of dict. It follows the syntax of the square bracket to access an individual element.

Example

students = {"Student1":"Rohan", "Student2":"Rahul", "Student3": "Akash"}

#access student
print(students["Student1"])    # Rohan

But if we use parenthesis () instead of the square bracket [] we will receive an error.

Error Example

Vamware
students = {"Student1":"Rohan", "Student2":"Rahul", "Student3": "Akash"}

#access student
print(students("Student1"))   # TypeError: 'dict' object is not callable

Error Statement

This error statement has two parts “TypeError” and “‘dict’ object is not callable” 

TypeError is the Exception Type telling us that we are performing some invalid operation on a Python data object. In the above example, we are receiving this exception because we can not use parenthesis to access dictionary elements.

Vamware

‘dict’ object is not callable means we are trying to call a dictionary object as a function or method. In Python functions and methods are callable objects, we put the parenthesis () after their name when we want to call them.

But the dictionary is not a function or method, and when we put the parenthesis after the dictionary name Python throws an error.

Common Example Scenario

Now let’s discuss an example where you may encounter this error in your Python code.

Let’s say we have a dictionary human that contains some information about the human species and we need to print all that information on the console panel.

Example

#dictionary 
human = {"family":"Hominidae",
         "class": "Mammalia",
         "species": "Homosapiens",
         "kingdom": "Animalia",
         "average speed": "13km/h",
         "bite force": "70 pounds per square inch"
    }

#print the details
for key in human:
    print(key, "->", human(key))   #error

Output

Traceback (most recent call last):
  File "main.py", line 12, in 
    print(key, "->", human(key))
TypeError: 'dict' object is not callable

Break the Error

In the above example we are getting the TypeError: 'dict' object is not callable because we have used the () brackets to access the data value from the dictionary human.

Solution

To solve the above example, we need to replace the () brackets with [] brackets, while we are accessing the dictionary value using key.

#dictionary 
human = {"family":"Hominidae",
         "class": "Mammalia",
         "species": "Homosapiens",
         "kingdom": "Animalia",
         "average speed": "13km/h",
         "bite force": "70 pounds per square inch"
    }

#print the details
for key in human:
    print(key, "->", human[key]) # solved

Output

family -> Hominidae
class -> Mammalia
species -> Homosapiens
kingdom -> Animalia
average speed -> 13km/h
bite force -> 70 pounds per square inch

Now our code runs successfully with no error.

Conclusion

The Error “TypeError: ‘dict’ object is not callable” error raises in a Python program when we use the () brackets to get a dictionary element. To debug this error we need to make sure that we are using the square brackets [] to access the individual element.

If you are receiving this error in your Python program and could not solve it. You can share your code in the comment section, we will try to help you in debugging.

People are also reading:

Author: Vinay

I am a Full Stack Developer with a Bachelor's Degree in Computer Science, who also loves to write technical articles that can help fellow developers.

Leave a Reply

Your email address will not be published.