×

Working with JSON in Python

Python is an Object-Oriented high-level language. Python is designed to be highly beginner-friendly. Python has an English-like syntax, which is very easy to read. In this article, we are going to discuss how to handle JSON files with Python. We will also learn what JSON is and what is the use of it?

JSON stands for JavaScript Object Notation. JSON is a popular format to represent the data and has become very popular for information exchange. JSON is a file that contains data. APIs use JSON to send the response from web servers. JSON can easily capture complex data relationships like nesting etc. The JSON structure is very similar to Python dictionaries which have key-value pairs where the key is a string, and value can be anything like string, integers, Booleans, etc. Below is an example of JSON data:

{
"students":[
{
"name":"Javed",
"id":"01",
"class":"fifth",
"subjects":["Maths","Science","Political Science"]
},
{"name":"Ravi",
"id":"14",
"class":"tenth",
"subjects":["Maths","Physics","Chemistry","Biology","Political Science"]
}
]
}

JSON was created to provide communication between a real-time server and a browser. JSON can be considered as an alternative for XML to deal with data.

JSON is considered to be the most used data format now. Yahoo was one of the first companies to use JSON officially. JSON is in use because of these reasons:

  • It is simple to read, write and understand.
  • JSON is very fast.
  • Almost all the browsers and languages support JSON in development.

Serializing JSON

Serialization refers to the process of converting the data to JSON objects. In serialization, a string of data is transferred into a series of bytes. When a computer got loads of information, then it needs to dump that information. In Python, we can do that with the help of an in-built library in Python called json. Python provides an in-built library called json to read and write the JSON files. We need to import the package to use it. We can use the methods like dump() and dumps() to write the data to files.

Reference the table below:

PythonJSON
dictobject
list, tuplearray
strstring
int, long, floatnumbers
Truetrue
Falsefalse
Nonenull

Writing Data in JSON

To write the data in JSON format in a file, Python provides the dump() method.  The dump() method takes two mandatory parameters. First is the JSON object we want to write, and second is the path to the file on which we want to write the json object.

Suppose the JSON object we want to write is this:

Marks = {
"name":[
{ "Rahul": 
{"Maths":"95",
"Physics":"88",
"Chemistry":"88"}},
{ "Raj": 
{"Maths":"70",
"Physics":"94",
"Chemistry":"90"}}
]
}

To save this data into the disk, we need to write it in a file. Below is the code for that:

with open("marks.json", "w") asfile:
json.dump(Marks, file)

Output

Running this code will create a file called marks.json with JSON object Marks written in it.

{"name": [{"Rahul": {"Maths": "95", "Physics": "88", "Chemistry": "88"}}, {"Raj": {"Maths": "70", "Physics": "94", "Chemistry": "90"}}]}
Working with JSON in Python

In the above code, we have first created a file called marks.json with WRITE mode. Then we have used the json.dump() method to write the JSON object in it.

Alternatively, we can also use the json.dumps() method to store the JSON object in a Python string object. dumps() method has only one argument, which is the JSON object we want to it. We are not passing the file path here because we are not writing the object to the disk. Below is the code on how to use dumps():

Marks_string = json.dumps(Marks)
print(Marks_string) 

Output

The json.dumps() method will write the JSON object to a Python string and printing it will produce the following output:

{"name": [{"Rahul": {"Maths": "95", "Physics": "88", "Chemistry": "88"}}, {"Raj": {"Maths": "70", "Physics": "94", "Chemistry": "90"}}]}
Working with JSON in Python

Deserialization JSON

Deserialization is the opposite process of serialization. It is the technique to decode the JSON data into Python objects. Technically, the transformation from serialization is not perfect, which means if we encode an object to JSON using serialization, later, if we deserialize it, we may not get the same object. For example, if we encode a tuple, we will get back a list after decoding it.

The conversion table for deserialization is:

JSONPython
objectdict
arraylist
stringstr
number (int)int
number (real)float
trueTrue
falseFalse
nullNone

Let us see the tuple and list example:

org_data = (1,2,3,4)
enc_data = json.dumps(org_data)
dec_data = json.loads(enc_data)
print(type(org_data))
print(type(dec_data))
Working with JSON in Python

Reading a JSON file

We first want to learn to use JSON in our application to read it in our Python codes. To read a json file, we can use the load() function provided by the json library. Suppose we have a file called students.json which contains JSON objects, and we want to load it in our program.

Students.json

{
"students":[
{
"name":"Javed",
"id":"01",
"class":"fifth",
"subjects":["Maths","Science","Political Science"]
},
{"name":"Ravi",
"id":"14",
"class":"tenth",
"subjects":["Maths","Physics","Chemistry","Biology","Political Science"]
}
]
}

Below is the code to read this file in Python:

import json    
with open(r'students.json') as file:  
data = json.load(file) 
print(data)

Output

After running this code, the students.json file will get loaded, and the program will print the content inside.

{'students': [{'name': 'Javed', 'id': '01', 'class': 'fifth', 'subjects': ['Maths', 'Science', 'Political Science']}, {'name': 'Ravi', 'id': '14', 'class': 'tenth', 'subjects': ['Maths', 'Physics', 'Chemistry', 'Biology', 'Political Science']}]}
Working with JSON in Python

Just like the dumps() and dump() method, we can also use the loads() method to deserialize data. See the example below to use the loads function:

Data = {
"students":[
{"name":"Javed",
"id":"01",
"class":"fifth",
"subjects":["Maths","Science","Political Science"]
},
{"name":"Ravi",
"id":"14",
"class":"tenth",
"subjects":["Maths","Physics","Chemistry","Biology","Political Science"]
}
]
}
a = json.dumps(Data)
Students = json.loads(a)
print(Students)

Output

{'students': [{'name': 'Javed', 'id': '01', 'class': 'fifth', 'subjects': ['Maths', 'Science', 'Political Science']}, {'name': 'Ravi', 'id': '14', 'class': 'tenth', 'subjects': ['Maths', 'Physics', 'Chemistry', 'Biology', 'Political Science']}]}
Working with JSON in Python

Related Topics

Introduction to Scratch programming

Scratch programming is generally designed for children who may create digital stories, games, and animations using the computer language Scratch, which has the largest kid-focused community in the world. Scratch...

3 minutes read.

Add a key-value pair to dictionary in Python

In programming, data type defines the type of value that a variable can hold. With help of these, we can perform various mathematical, logical, or relational operations on that particular...

5 minutes read.

Cube Root in Python

In general, the cube is a three-dimensional solid figure that has 6 square faces. It is also called a geometrical shape with six equal faces, eight vertices, and twelve edges....

3 minutes read.

Python Loop through a Dictionary

Introduction in this tutorial, we will discuss in python How to Loop Through a Dictionary. In contrast to other Data Types, which can only retain a single value as an element, a Dictionary...

4 minutes read.

How to Update Python?

How to Update Python In this article, we will discuss how we can update Python in our system. For a better understanding, this article will cover all the steps right from installation...

4 minutes read.

Python List

The list is one of the most versatile, mutable data-structures in Python. It can store heterogeneous data or different types of data. The list contains comma-separated values (item) within the square brackets. Creating...

4 minutes read.

Create First GUI Application using Tkinter in Python

GUI: A graphical interface (GUI) is a user interface that lets users interact with electronic devices like computers and smartphones by using menus, icons, and other visual cues (graphics). In contrast...

6 minutes read.

Python And Operator

Python's and operator takes two operands that can be either object, Boolean expressions, or both. And operator creates more complex expressions using those operands. Conditions are the common name for...

8 minutes read.

Python Validator

Validator  The validator is a library available in the python programming language. The library in python consists of all the related modules which can be imported to perform the required operation....

3 minutes read.

Python If-else statement

In real life, there are situations where we have to make decisions for a particular circumstance and based on those decisions, and we plan our next move. The same thing...

4 minutes read.

Python Syntax

Python is a strong object-oriented programming language that is simple to learn. Python was created to be a very readable programming language. The syntax of the Python programming language is...

8 minutes read.

Add Element to Tuple in Python

Python: Popular high-level, all-purpose programming language Python. The new version of the Python programming language, Python 3, is used for all software applications, including web development. Python is the best programming...

4 minutes read.

How to append an Array in Python

A group of objects kept at adjacent memory regions is known as an array. It is a container with a set capacity for a certain number of things, all of...

7 minutes read.

Convert int to Float in Python using Pandas

Introduction We have already learnt about how to convert float variables to int. Now let us know how to convert int variables to float So let us create another Dataset on which...

2 minutes read.

How to Install Tweepy in Python

In this article, we will learn or understand how to install Tweepy in Python and what Tweepy is. Firstly, let’s understand What Tweepy is. As we all know, one of the...

3 minutes read.

Python Dictionary keys() method

Python Dictionary keys() method The dictionary.keys() method in Python returns a view object that displays a list of all the keys in the dictionary Syntax dictionary.keys() Parameter NA Return This method returns a view object that displays...

2 minutes read.

How to check if the dictionary is empty in Python?

What is a dictionary in Python? A directory is a collection of data but data is not ordered. Unlike other data types, it does not hold a single value as its...

3 minutes read.

Expressions in Python

What is Expression in Python? The expression contains more than one operator as well as the operands with it. Expression helps us to produce some other values. In the Python programming...

12 minutes read.

Python Percentage Sign

In Python, the percentage sign significantly completes two things. They are: It goes about as a Modulo administrator. It helps in string organizing. Allow us to see every one of them plainly. Modulo operator: Like...

2 minutes read.

Python ascii() Function

Python ascii() Function The ascii() function returns a readable version of any object (Strings, Tuples, Lists, etc). This function will replace any non-ascii characters with escape characters. Syntax ascii(object) Parameter object:  An object, like String, List, Tuple, Dictionary, etc. Return This...

1 minute read.