Merge multiple JSON objects into one single object in Python

featured Image

In this article, we will learn how to combine multiple JSON objects into one using python.

The term JSON stands for JavaScript Object Notation. It is a kind of executable file that is used to store and transfer data between web applications.

Once we have the JSON file, we can load or parse it to work with the data in any programming language.

In Python, if we try to load or parse and JSON file with multiple JSON objects, it might throw us some error. It is because json.load() method can read a file with only one valid JSON object.

Therefore, we need to merge multiple JSON objects into a single one before using it with json.load() method in python.

Merge Multiple JSON objects into one single object

To combine multiple JSON objects into one, we have to first convert each object to a dictionary first using json.loads() method and then append it to a single JSON property using append() method.

Let’s understand it with an example.

Suppose, we have a file with multiple employee details as JSON objects.

{"id": 1, "name": "John", "email": "[email protected]"}
{"id": 2, "name": "Alex", "email": "[email protected]"}
{"id": 3, "name": "Tom", "email": "[email protected]"}
{"id": 4, "name": "Jerry", "email": "[email protected]"}

Now, we want to merge all the JSON objects into a single JSON property as a python list.

{"employee_records":[
    // all json objects here
]}

So to merge two or more JSON objects into a single object, we can write the following code as shown below.

Example:

import json

employee_list = {'employee_records':[]}

with open('json.txt') as f:
    for json_obj in f:
        employee_dict = json.loads(json_obj)
        employee_list['employee_records'].append(employee_dict)

print(json.dumps(employee_list))

Output:

{"employee_records": [
    {"id": 1, "name": "John", "email": "[email protected]"}, 
    {"id": 2, "name": "Alex", "email": "[email protected]"}, 
    {"id": 3, "name": "Tom", "email": "[email protected]"}, 
    {"id": 4, "name": "Jerry", "email": "[email protected]"}
  ]
}

As you can see, we have all the JSON objects from the file into a single object in python.

Code Explanation:

First, to use JSON in python, we have to import the built-in package called json.

Next, we read through each valid JSON object from the file using open('json.txt') function.

We used the for loop to iterate through each object and then convert it to a python dictionary using json.loads() method.

employee_dict = json.loads(json_obj)

Once, we have converted the JSON objects to a dictionary, we then append it to the JSON property with an empty list using append() method.

employee_list['employee_records'].append(employee_dict)

After that, we used the json.dumps() method to convert the python object (employee_list) into a json string and print it out in the terminal.

json.dumps(employee_list)

Save the merged JSON object in a file

You can also merge the JSON object and save it in a file by using the following lines.

# json.dumps() converts a python object into json string
valid_json = json.dumps(employee_list)        
f = open("valid_json_file.json", "a")
f.write(valid_json)
f.close()

Here, we have created a file using open() method.

Next, we wrote the content i.e the employee_list to the file using f.write() method. And then closed the file using f.close()

So now, when we run the python script, it will merge the JSON objects and then save them in a single file in our current directory.

Complete Python Program:

import json

employee_list = {'employee_records':[]}

with open('json.txt') as f:
    for json_obj in f:
        employee_dict = json.loads(json_obj) 
        employee_list['employee_records'].append(employee_dict)

valid_json = json.dumps(employee_list)     
f = open("valid_json_file.json", "a")
f.write(valid_json)
f.close()

Conclusion: Here we have learned how to compile more the one JSON objects from a file into one single JSON object and then save the object in a new file in the current directory using python.


Related Posts

merge json files in python

How to merge JSON files in python

JSON (JavaScript Object Notation) is a data format used for storing, transferring, and visualizing data. Its simple structure of key:value pairs and array data types makes JSON an easy and…

Read more
Install python pip in ubuntu

How to Install Pip(pip3) in Ubuntu Linux 22.04

Pip is a package manager for Python that allows you to install and manage additional Python packages that are not part of the Python standard library. Pip makes it easy…

Read more
featured Image

How to Write If-Else Statements in One Line in Python

If-else statements are a fundamental concept in Python and other programming languages. They allow you to execute different blocks of code based on whether a condition is true or false….

Read more

Leave a Reply

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