What is Python KeyError Exception?
Python KeyError is raised when we try to access a key from dict, which doesn’t exist. It’s one of the built-in exception classes and raised by many modules that work with dict or objects having key-value pairs.
Matching infrastructure at centron
Scripts and services eventually need an environment that keeps running: ccloud³ VMs from €3.12 per month, billed by the hour. Rent a cloud server →
Python KeyError with Dictionary
Let’s look at a simple example where KeyError is raised by the program.
emp_dict = {'Name': 'Pankaj', 'ID': 1}
emp_id = emp_dict['ID']
print(emp_id)
emp_role = emp_dict['Role']
print(emp_role)Output:
1
Traceback (most recent call last):
File "/Users/pankaj/Documents/PycharmProjects/hello-world/journaldev/errors/keyerror_examples.py", line 6, in <module>
emp_role = emp_dict['Role']
KeyError: 'Role'Python KeyError Exception Handling
We can handle the KeyError exception using the try-except block. Let’s handle the above KeyError exception.
emp_dict = {'Name': 'Pankaj', 'ID': 1}
try:
emp_id = emp_dict['ID']
print(emp_id)
emp_role = emp_dict['Role']
print(emp_role)
except KeyError as ke:
print('Key Not Found in Employee Dictionary:', ke)Output:
1
Key Not Found in Employee Dictionary: 'Role'Avoiding KeyError when accessing Dictionary Key
We can avoid KeyError by using get() function to access the key value. If the key is missing, None is returned. We can also specify a default value to return when the key is missing.
emp_dict = {'Name': 'Pankaj', 'ID': 1}
emp_id = emp_dict.get('ID')
emp_role = emp_dict.get('Role')
emp_salary = emp_dict.get('Salary', 0)
print(f'Employee[ID:{emp_id}, Role:{emp_role}, Salary:{emp_salary}]')Output:
Employee[ID:1, Role:None, Salary:0]Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.