Open In App

Loop Through a Nested Dictionary in Python

Last Updated : 28 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Working with nested dictionaries in Python can be a common scenario, especially when dealing with complex data structures. Iterating through a nested dictionary efficiently is crucial for extracting and manipulating the desired information. In this article, we will explore five simple and generally used methods to loop through a nested dictionary in Python.

How to Loop Through a Nested Dictionary in Python?

Below, are the methods of How to Loop Through a Nested Dictionary in Python.

Loop Through a Nested Dictionary Using Nested Loops

In this example, Python code iterates through a nested dictionary, printing the outer key and then iterating through the inner dictionary to display each inner key-value pair. It provides a clear representation of the hierarchical structure of the nested dictionary.

Python3




nested_dict = {'outer_key': {'inner_key1': 'value1', 'inner_key2': 'value2'}}
  
for outer_key, inner_dict in nested_dict.items():
    print(f"Outer Key: {outer_key}")
    for inner_key, value in inner_dict.items():
        print(f"Inner Key: {inner_key}, Value: {value}")


Output

Outer Key: outer_key
Inner Key: inner_key1, Value: value1
Inner Key: inner_key2, Value: value2


Loop Through a Nested Dictionary Using Recursion

In this example, below Python code defines a recursive function, `iterate_nested_dict`, to iterate through a nested dictionary, printing each key-value pair. It handles nested structures by recursively calling itself when encountering inner dictionaries, providing a clear and flexible approach for nested dictionary traversal.

Python3




def iterate_nested_dict(nested_dict):
    for key, value in nested_dict.items():
        if isinstance(value, dict):
            iterate_nested_dict(value)
        else:
            print(f"Key: {key}, Value: {value}")
  
nested_dict = {'outer_key': {'inner_key1': 'value1', 'inner_key2': 'value2'}}
iterate_nested_dict(nested_dict)


Output

Key: inner_key1, Value: value1
Key: inner_key2, Value: value2


Loop Through a Nested Dictionary Using itertools.chain

In this example, below Python code uses the `itertools.chain` module to iterate through a flattened version of a nested dictionary, printing each key-value pair. It simplifies the iteration process by chaining the items of the outer and inner dictionaries, providing a concise .

Python3




from itertools import chain
  
nested_dict = {'outer_key': {'inner_key1': 'value1', 'inner_key2': 'value2'}}
  
for key, value in chain.from_iterable(nested_dict.items()):
    print(f"Key: {key}, Value: {value}")


Output

Key: inner_key1, Value: value1
Key: inner_key2, Value: value2

Loop Through a Nested Dictionary Using json.dumps & json.loads

In this example, belowPython code demonstrates a method to iterate through a nested dictionary by converting it to a JSON string and then loading it back. It utilizes the `json.dumps` and `json.loads` functions, providing a straightforward approach for handling nested structures in a more flattened format.

Python3




import json
  
nested_dict = {'outer_key': {'inner_key1': 'value1', 'inner_key2': 'value2'}}
json_str = json.dumps(nested_dict)
  
for key, value in json.loads(json_str).items():
    print(f"Key: {key}, Value: {value}")


Output

Key: outer_key, Value: {'inner_key1': 'value1', 'inner_key2': 'value2'}


Conclusion

In conclusion, looping through a nested dictionary in Python involves using techniques like nested loops, recursion, `itertools.chain`, `dict.items()` with recursion, or leveraging `json.dumps` and `json.loads`. The choice depends on factors such as the structure of the nested dictionary and specific task requirements. Each method offers a unique approach, catering to different scenarios for efficient iteration through nested structures in Python.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads