Open In App

Python Sort Nested Dictionary by Multiple Values

Last Updated : 23 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

We are given a nested dictionary and our task is to sort a nested dictionary by multiple values in Python and print the result. In this article, we will see how to sort a nested dictionary by multiple values in Python.

Example:

Input : {'A': {'score': 85, 'age': 25},
'B': {'score': 92, 'age': 30},
'C': {'score': 78, 'age': 22}}
Output: {'C': {'score': 78, 'age': 22},
'A': {'score': 85, 'age': 25},
'B': {'score': 92, 'age': 30}}
Explanation : In above example, the nested dictionary is sorted by score in ascending order.

Python Sort Nested Dictionary by Multiple Values

Below are some of the ways by which we can sort a nested dictionary by multiple values in Python:

  • Using sorted() function
  • Using dictionary comprehension
  • Using collections.OrderedDict()
  • Using pandas library

Sort Nested Dictionary by Multiple Values Using sorted() Function

In this example, below Python code sorts a nested dictionary (`nested_dict`) by the 'score' values in the inner dictionaries, creating a new dictionary (`sorted_nested_dict`) that reflects the sorted order. The result is then printed.


Output
{'C': {'score': 78, 'age': 27}, 'A': {'score': 85, 'age': 25}, 'B': {'score': 92, 'age': 30}}

Sort Nested Dictionary by Multiple Values Using Dictionary Comprehension

In this example, below Python code uses dictionary comprehension to sort the nested dictionary `nested_dict` based on the 'score' and 'age' values in the inner dictionaries. The result is stored in `sorted_nested_dict` and then printed.


Output
{'C': {'score': 78, 'age': 22}, 'A': {'score': 85, 'age': 25}, 'B': {'score': 92, 'age': 30}}

Sort Nested Dictionary by Multiple Values Using collections.OrderedDict()

In this example, below Python code uses , the collections module `OrderedDict` is used to create a sorted version (`sorted_nested_dict`) of the nested dictionary `nested_dict`. The sorting is based on the 'score' and 'age' values in the inner dictionaries, and the result is then printed.


Output
OrderedDict([('C', {'score': 78, 'age': 22}), ('A', {'score': 85, 'age': 25}), ('B', {'score': 92, 'age': 30})])

Sort Nested Dictionary by Multiple Values Using Pandas library

In this example, below Python code uses the Pandas library to convert the nested dictionary `nested_dict` into a DataFrame (`df`). Then, it sorts the DataFrame based on the 'score' and 'age' columns, creating `sorted_df`. Finally, it converts the sorted DataFrame back into a dictionary (`sorted_nested_dict`).


Output
{'C': {'score': 78, 'age': 22}, 'A': {'score': 85, 'age': 25}, 'B': {'score': 92, 'age': 30}}

Sort Nested Dictionary by Multiple Values Using itemgetter Function

In this example, we employ the itemgetter function from the operator module to sort the nested dictionary nested_dict based on specified keys, such as 'score' and 'age'.


Output
{'A': {'age': 25, 'score': 85}, 'C': {'age': 22, 'score': 78}, 'B': {'age': 30, 'score': 92}}

Explore