Append to JSON file in Python

In this article, we are going to show you how to append to JSON file in Python. Python has a built-in package called json which lets us working with JSON. There are several ways to do it. But we use a simple way for your easy understanding.

First, you have to know about JSON.

  • The expansion of JSON is JavaScript Object Notation.
  • Used for data transmission that takes place between a server and a web application.
  • It is a collection of key and value pairs.

Python program to append JSON file

Let’s have a look at the following example.

js1.json:

{"Name": "ram", "Age": "20", "Gender": "male"}
import json
dict1= {"City": "chennai"}
with open("js1.json", "r+") as fi:
    data = json.load(fi)
    data.update(dict1)
    fi.seek(0)
    json.dump(data, fi)

In this example, we have imported a json module. The functions used in this program are as follows.

1.loads(): purpose of loads() is to parse the JSON string. It takes JSON string as a parameter and returns the python dictionary object.

  • Syntax: json.loads(json_string)

2.update(): this function updates the dictionary with elements from another dictionary object which is a key-value pair. It takes another dictionary as an argument and returns none.

  • Syntax: dict.update(other_dict)

3.dumps(): this function converts Python object to JSON string. It takes a Python object as an argument and returns the JSON string.

  • Syntax: json.dumps(object)

4.seek(): this function changes the position of a filehandle to a given position. It takes offset(no.of positions to be moved) and from(point of reference) as parameters. When we set the offset value to 0, it points to the beginning of a file.

  • Syntax: file.seek(offset,from)

After executing the above program, the JSON file will be modified as follows.

js1.json:

 {"Name": "ram", "Age": "20", "Gender": "male", "City": "chennai"}

I hope that you have learned something useful from this tutorial.

Leave a Reply

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