Skip to content
Related Articles

Related Articles

Improve Article
How to convert a nested OrderedDict to dict?
  • Last Updated : 02 Feb, 2021

In this article, we will discuss how to convert a nested OrderedDict to dict? Before this we must go through some concepts:

  • Dictionary in Python is an unordered collection of data values, used to store data values like a map, which unlike other Data Types that hold only single value as an element, Dictionary holds key:value pair. Key-value is provided in the dictionary to make it more optimized.
  • An OrderedDict is a dictionary subclass that remembers the order that keys were first inserted.
  • The only difference between dict() and OrderedDict() is that: OrderedDict preserves the order in which the keys are inserted. A regular dict doesn’t track the insertion order and iterating it gives the values in an arbitrary order. By contrast, the order the items are inserted is remembered by OrderedDict.

To define the nested OrderedDict, we are using the collections module in python.

Python3




#import package
from collections import OrderedDict
  
# define OrderedDict
od1 = OrderedDict([('1', 'one'), ('2', 'two')])
print(type(od1))
print(od1)
  
# define nested OrderedDict
od2 = OrderedDict([('1', 'one'), 
                   ('2', OrderedDict([('-2'
                                       '-ive'), 
                                      ('+2'
                                       '+ive')]))])
print(type(od2))
print(od2)

Output:

<class ‘collections.OrderedDict’>

OrderedDict([(‘1’, ‘one’), (‘2’, ‘two’)])



<class ‘collections.OrderedDict’>

OrderedDict([(‘1’, ‘one’), (‘2’, OrderedDict([(‘-2’, ‘-ive’), (‘+2’, ‘+ive’)]))])

We can convert the OrderedDict to dict in just one line, but this is for only simple OrderedDict, not for the nested OrderedDict.

Python3




# import package
from collections import OrderedDict
  
# define OrderedDict
od1 = OrderedDict([('1', 'one'), ('2', 'two')])
  
# convert to dict
od1 = dict(od1)
  
# display dictionary
print(type(od1))
print(od1)

Output:

<class 'dict'>
{'1': 'one', '2': 'two'}

So, to convert nested OrderedDict to dict, we are using json.loads() and json.dumps() methods. 

  • The full-form of JSON is JavaScript Object Notation. It means that a script (executable) file which is made of text in a programming language, is used to store and transfer the data. Python supports JSON through a built-in package called json. To use this feature, we import the json package in Python script. The text in JSON is done through quoted-string which contains the value in key-value mapping within { }. It is similar to the dictionary in Python.
  • The json.loads() method can be used to parse a valid JSON string and convert it into a Python Dictionary. It is mainly used for deserializing native string, byte, or byte array which consists of JSON data into Python Dictionary.
  • The json.dumps() function converts a Python object into a json string.

Python3




# import package
from collections import OrderedDict
import json
  
# define nested OrderedDict
od2 = OrderedDict([('1', 'one'), 
                   ('2', OrderedDict([('-2'
                                       '-ive'), 
                                      ('+2'
                                       '+ive')]))])
# convert to dict
od2 = json.loads(json.dumps(od2))
  
# display deictionary
print(type(od2))
print(od2)

Output:

<class 'dict'>
{'1': 'one', '2': {'-2': '-ive', '+2': '+ive'}}

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :