×

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

Working with CSV files in Python

Python is an Object-Oriented high-level language. Python has an English-like syntax, which is very easy to read and write codes. Python is an interpreted language which means that it uses...

7 minutes read.

Python bin() function

Python bin() function The bin() function in Python returns the binary version for the specified integer. Syntax bin(x) Parameter n: This parameter represents an integer or int value. Return This function returns a binary string for the specified integer...

1 minute read.

GUI to Shut down, Restart and Logout from the PC using Tkinter in Python

GUI: One of the most significant factors that increased the usability of computer and digital technologies for common, less tech-savvy users is likely the development and widespread adoption of GUIs. GUIs...

4 minutes read.

Python Line Break

Introduction In this tutorial, you will learn line breaks in python.In Python, the new line character is used to indicate the start of a new line and the end of an...

5 minutes read.

Python Bitwise Operators

When used with variables and objects in an expression, operators are tokens that carry out calculations. The variables and items to which the computation is applied are known as operands....

5 minutes read.

XXhash Python Examples

XXhash Python: xxHash is an extremely rapid hash calculation that operates inside the confines of RAM. Code is incredibly convenient, and hashes (almost nothing/large endian) are same at all levels. Execution of...

4 minutes read.

Python String title() method

Python String title() method The string.title() method in Python returns a string where the first character in every word is upper case. If the word contains a number or a symbol,...

1 minute read.

Python String isspace() method

Python String isspace() method The string.isspace() method returns a Boolean value true if there are only whitespace characters in the given string. This function is used to check if the given...

2 minutes read.

Python Variables, Constants and Literals

Python is today's most valuable, easy-to-implement and sought-out programming language. Nowadays, developers want to focus on implementing the program rather than spending time with complex programs. So, for this reason,...

17 minutes read.

Operator Module In Python

Introduction The operator module is used for performing operations using methods rather than utilizing operators in Python code. The operator module provides several methods for performing the operations.  The operator module contains...

7 minutes read.

How to plot a Histogram in Python

A Histogram is used to represent a given data provided as a chunk. This histogram is a graphical representation that uses bars to indicate the ranges of the data. In...

4 minutes read.

Python Dictionary items() method

Python Dictionary items() method The dictionary.items() method in Python returns a view object that displays a list of dictionary's (key, value) tuple pairs. Syntax dictionary.items() Parameter NA Return This method returns a view object, displaying the list...

1 minute read.

Creating Tables using Python MySQL

In this article, we are going to learn how to create tables in databases using Python MySQL. Introduction to Tables: Generally, databases are used in order to store the information in the...

9 minutes read.

Python List count() method

Python List count() method The list.count() method returns the number of times x appears in the list. Syntax list.count(x) Parameter x: This parameter represents the value to search for and can contain any iterable (list, set, tuple, etc.) Return This method returns the...

1 minute read.

How to Sort a String in Python?

The characters in the string are sorted or put in alphabetical order using the sort string function in Python. Python has built-in techniques for sorting strings available. Since we occasionally...

6 minutes read.

How to Program in Python on Raspberry pi?

Introduction to Python A popular programming tool with simple, complete novice syntax is Python structure of paragraphs, phrases, and words. Due to its widespread use, this has a large community that...

4 minutes read.

Python String rstrip() method

Python String rstrip() method The string.rstrip() method in Python returns a copy of the string with trailing characters removed. Syntax string.rstrip([chars]) Parameter chars:  This argument represents a string specifying the set of characters to be...

1 minute read.

Check Palindrome in Python

Python is an object-oriented high-level programming language. Python has dynamic semantics and has high-level built-in data structures which support dynamic typing and dynamic binding. Python provides rapid development. It has...

4 minutes read.

Python Set union() method

Python Set union() method The set.union() method in Python returns a set that contains all items from the original set and all items from the specified sets. Syntax set.union(set1, set2...) Parameter set1- This parameter represents the first set...

2 minutes read.

Writing to Excel using Python

Python is an Object-Oriented high-level language. Python has an English-like syntax, which is very easy to read and write codes. Python is an interpreted language which means that it uses...

3 minutes read.