Append to JSON file using Python (original) (raw)

Last Updated : 3 Jul, 2025

JSON (JavaScript Object Notation) is a lightweight data format that stores data as key-value pairs within curly braces {}. Python's json module makes it easy to work with JSON data, whether you are parsing JSON strings, converting Python objects to JSON, or appending new data to existing JSON files.

Key Functions in json Module:

1. json.loads()

Parses a JSON string and returns a Python dictionary.

**Syntax: json.loads(json_string)
**Parameter: It takes JSON string as the parameter.
**Return type: It returns the python dictionary object.

2. json.dumps()

Converts a Python object to a JSON string.

**Syntax: json.dumps(object)
**Parameter: It takes Python Object as the parameter.
**Return type: It returns the JSON string.

3. update()

Updates a dictionary with elements from another dictionary or iterable key-value pairs.

**Syntax: dict.update([other])
**Parameters: Takes another dictionary or an iterable key/value pair.
**Return type: Returns None.

Example 1: Updating a JSON string.

Python `

import json

x = '{ "organization":"GeeksForGeeks","city":"Noida","country":"India"}'

python object to be appended

y = {"pin":110096}

parsing JSON string:

z = json.loads(x)

appending the data

z.update(y)

the result is a JSON string:

print(json.dumps(z))

`

**Output:

{"organization": "GeeksForGeeks", "city": "Noida", "country": "India", "pin": 110096}

Example 2: Updating a JSON file.

The **write_json() function reads the existing data, updates it, and then writes the updated data back to the file. Suppose the JSON file looks like this.

python-json

We want to add another JSON data after **emp_details. Below is the implementation.

Python `

import json

Function to append new data to JSON file

def write_json(new_data, filename='data.json'): with open(filename, 'r+') as file: # Load existing data into a dictionary file_data = json.load(file)

    # Append new data to the 'emp_details' list
    file_data["emp_details"].append(new_data)
    
    # Move the cursor to the beginning of the file
    file.seek(0)
    
    # Write the updated data back to the file
    json.dump(file_data, file, indent=4)

New data to append

new_employee = { "emp_name": "Nikhil", "email": "nikhil@geeksforgeeks.org", "job_profile": "Full Time" }

Call the function to append data

write_json(new_employee)

`

**Output:

python-append-json