How to flatten JSON objects in Python

In this post, we are going to learn about how to flatten JSON objects in Python. We will 2 methods that are available in Python.

Below are the two methods are given that we are going to use to flatten JSON objects:

  1. Using Recursion
  2. Using flatten_json library.

First, we have to know about JSON.

JSON:

  • Expansion: JavaScript Object Notation.
  • When there is a need for data transmission that takes place between a server and a web application, JSON can be used.
  • It is a collection of key and value pairs.

Why flattening JSON objects?

When we need better understanding views, we can flatten JSON objects. After flattening, only key-value pairs will exist without nesting.

Method 1: Using Recursion

When compared to json-flatten library, this method is a little bit slower.

Let’s take a look at the example.

def flatteningJSON(b): 
    ans = {} 
    def flat(i, na =''):
        #nested key-value pair: dict type
        if type(i) is dict: 
            for a in i: 
                flat(i[a], na + a + '_')
        #nested key-value pair: list type
        elif type(i) is list: 
            j = 0  
            for a in i:                 
                flat(a, na + str(j) + '_') 
                j += 1
        else: 
            ans[na[:-1]] = i 
    flat(b) 
    return ans
unflattenJSON = {'user' : 
               {'Ram': 
                {'Roll_No':30,  
                'Marks': [90,100,78] 
                } 
               } 
              } 
print("After flattening JSON object:")
print(flatteningJSON(unflattenJSON))

Output:

After flattening JSON object
{'user_Ram_Roll_No': 30, 'user_Ram_Marks_0': 90, 'user_Ram_Marks_1': 100, 'user_Ram_Marks_2': 78}

Method: Using flatten_json library

This library has methods that can be used to flatten a JSON object to single key-value pairs and vice versa.

Installation:

pip install flatten_json

First, we imported the flatten_json library. Then we used a flatten() method which can be used to flatten a given JSON object.

  • Syntax: flatten(JSON obj)

Now, we have a look at the program.

from flatten_json import flatten 
unflattenJSON = {'user' : 
               {'Ram': 
                {'Roll_No':30,  
                'Marks': [90,100,78] 
                } 
               } 
              } 
flattenJSON = flatten(unflattenJSON)
print("After flattening JSON object:")
print(flattenJSON) 

Output:

After flattening JSON object:
{'user_Ram_Roll_No': 30, 'user_Ram_Marks_0': 90, 'user_Ram_Marks_1': 100, 'user_Ram_Marks_2': 78}

So, I hope that you guys learned something new and useful from this tutorial.

Also read,

Leave a Reply

Your email address will not be published. Required fields are marked *