Open In App

Check If a Nested Key Exists in a Dictionary in Python

Last Updated : 22 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Dictionaries are a versatile and commonly used data structure in Python, allowing developers to store and retrieve data using key-value pairs. Often, dictionaries may have nested structures, where a key points to another dictionary or a list, creating a hierarchical relationship. In such cases, it becomes essential to check if a nested key exists before attempting to access it to avoid potential errors.

Here, we’ll explore some simple and generally used examples to demonstrate how to check if a nested key exists in a dictionary in Python.

Check If A Nested Key Exists In A Dictionary In Python

Below, are the method of checking if A Nested Key Exists In A Dictionary In Python.

Basic Nested Key

In this example, This code checks if the key ‘inner‘ exists within the nested dictionary under the key ‘outer’ in `my_dict`, then prints its value if found, otherwise, prints a message indicating its absence.

Python3




# Example Dictionary
my_dict = {'outer': {'inner': 'value'}}
 
# Check if 'inner' key exists inside 'outer'
if 'outer' in my_dict and 'inner' in my_dict['outer']:
    nested_value = my_dict['outer']['inner']
    print("Nested Key 'inner' exists with value:", nested_value)
else:
    print("Nested Key 'inner' does not exist.")


Output

Nested Key 'inner' exists with value: value


Check If A Nested Key Exists In A Dictionary Using get() Method

In this example, the code safely accesses the nested key ‘inner‘ within the dictionary under the key ‘outer’ in `my_dict` using the `get()` method, avoiding potential KeyError. It then prints the value if the key exists, or a message indicating its absence if not.

Python3




# Example Dictionary
my_dict = {'outer': {'inner': 'value'}}
 
# Safely access nested key using get()
nested_value = my_dict.get('outer', {}).get('inner')
if nested_value is not None:
    print("Nested Key 'inner' exists with value:", nested_value)
else:
    print("Nested Key 'inner' does not exist.")


Output

Nested Key 'inner' exists with value: value


Check If A Nested Key Exists In A Dictionary Using try and except

In this example, the code uses a try-except block to attempt accessing the nested key ‘inner‘ within the dictionary under the key ‘outer‘ in `my_dict`. If the key exists, it prints the corresponding value; otherwise, it catches the KeyError and prints a message indicating the absence of the nested key.

Python3




# Example Dictionary
my_dict = {'outer': {'inner': 'value'}}
 
# Using try-except for exception handling
try:
    nested_value = my_dict['outer']['inner']
    print("Nested Key 'inner' exists with value:", nested_value)
except KeyError:
    print("Nested Key 'inner' does not exist.")


Output

Nested Key 'inner' exists with value: value


Check If A Nested Key Exists In A Dictionary Using Recursive Function

In this example, This recursive function, `nested_key_exists`, checks if a series of nested keys, given as a list (‘outer‘ -> ‘inner‘), exists within the dictionary `my_dict`. It prints a message indicating the existence or absence of the specified nested key.

Python3




# Recursive function to check nested key existence
def nested_key_exists(d, keys):
    if keys and d:
        return nested_key_exists(d.get(keys[0]), keys[1:])
    return not keys and d is not None
 
# Example Dictionary
my_dict = {'outer': {'inner': 'value'}}
 
# Check if 'outer' -> 'inner' exists
if nested_key_exists(my_dict, ['outer', 'inner']):
    print("Nested Key 'inner' exists.")
else:
    print("Nested Key 'inner' does not exist.")


Output

Nested Key 'inner' exists.




Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads