Javatpoint Logo
Javatpoint Logo

Python JSON

JSON, which stands for JavaScript Object Notation, is a popular data format for online data exchange. JSON is the best format for organizing data between a client and a server. The programming language JavaScript is comparable to this language's syntax. JSON's primary goal is data transmission between the client and the web server. It is the most efficient method of exchanging data and is simple to master. It works with many other programming languages, including Python, Perl, Java, etc.

In JavaScript, JSON primarily supports the following six forms of data:

  • String
  • Number
  • Boolean
  • Null
  • Object
  • Array

Two structures form the foundation of JSON:

  • Data is kept in name/value pairs. It is handled like a record, object, dictionary, hash table, or keyed list.
  • An array, vector, list, or sequence is all considered equivalent to the ordered list of values.

The Python dictionary is comparable to the JSON data structure. Here is an illustration of JSON data:

Utilizing Python JSON

Json is a module that Python offers. Python supports the marshal and pickle modules from the standard library, and JSON API functions similarly to these libraries. Python natively supports JSON characteristics.

The process of serializing JSON data is known as encoding. Data is transformed into a series of bytes and delivered across the network using the serialization technique.

Output:

['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', '_default_decoder', '_default_encoder', 'codecs', 'decoder', 'detect_encoding', 'dump', 'dumps', 'encoder', 'load', 'loads', 'scanner']

The following techniques will be covered in this section:

  • load()
  • loads()
  • dump()
  • dumps()

Serializing JSON

The process used to translate Python objects to JSON is known as serialization. When a computer needs to process a lot of data, it is a good idea to store that data in a file. Using the JSON function, we can store JSON data in a file. The dump() and dumps() methods are available in the json module and are used to modify Python objects.

The following JSON items are created from Python objects. Following is a list of each:

Sr. Python Objects JSON
1. Dict Object
2. list, tuple Array
3. Str String
4. int, float Number
5. True true
6. False false
7. None null
  • The writing of JSON data into a file function dump

A dump() function is available in Python to communicate (encode) data in JSON format. It takes two positional arguments: the data object that needs to be serialized and the file-like object that needs to receive the bytes.

Let's look at the straightforward serialization example:

Output:

{"Name" : "Peter", "Roll_no" : "0090014" , "Grade" : "A",  "Age" : 20, "Subject" : ["Computer Graphics", "Discrete Mathematics", "Data Structure"] }

A file called data.json has been opened in writing mode in the program above. We opened this file in write mode so that it would be created if it didn't already exist. The dictionary is converted into a JSON string using the json.dump() method.

  • The function dumps ()

The serialized data is kept in the Python file using the dumps() function. It just takes one argument, which is Python data, to be serialized. We don't write data to disc; hence the file-like parameter is not used. Let's think about the following illustration:

Output:

{"Name": "Peter", "Roll_no": "0090014", "Grade": "A", "Age": 20}

JSON allows hierarchical lists, tuples, objects, and basic data types like strings and numbers.

Output:

["Welcome", "to", "javaTpoint"]
["Welcome", "to", "javaTpoint"]
"Hello"
1234
23.572
true
false
null

JSON Deserialization

The process of converting JSON data into Python objects is known as deserialization. The load() and loads() methods of the json module are used to transform JSON data into Python objects. Following is a list of each:

SR. JSON Python
1. Object dict
2. Array list
3. String str
4. number(int) int
5. true True
6. false False
7. null None

Although technically not a precise conversion of the JSON data, the above table depicts the opposite of the serialized table. This indicates that the object may not be the same if we encode it and then decode it again later.

Let's use a real-world illustration. If someone translates anything into Chinese and then back into English, the translation may not be correct. Take this straightforward illustration as an illustration.

Output:

<class 'tuple'>
<class 'list'>
  • load() Method

The JSON data from the file is deserialized to a Python object using the load() function. Think about the following instance:

Output:

{'Name': 'Peter', 'Roll_no': '0090014', 'Grade': 'A', 'Age': 20}

Using the dump() function, we have encoded a Python object in the file in the program above. Then, we read the JSON file using the load() function and the argument read_file.

The loads() function, another feature of the json module, is used to translate JSON input into Python objects. It resembles the load() function quite a bit. Think about the following instance:

Output:

['Mathew', 'Peter', [10, 32.9, 80], {'Name': 'Tokyo'}]

json.load() vs json.loads()

JSON files are loaded using the json.load() function, while strings are loaded using the json.loads() function.

json.dump() vs json.dumps()

When we want to serialize Python objects into JSON files, we use the json.dump() function. We also utilize the json?dumps() function to transform JSON data into a string for processing and printing.

Python Pretty Print JSON

There are instances when a lot of JSON data needs to be analyzed and debugged. It can be done by giving extra arguments to the json. dumps() and json.dump() functions, such as indent and sort_keys.

Note: Both dump() and dumps() functions accept indent and short_keys arguments.

Consider the following example:

Output:

{
    "Age": 23,
    "City": "English",
    "Name": "Andrew",
    "Number": 90014,
    "Subject": [
        "Data Structure",
        "Computer Graphics",
        "Discrete mathematics"
    ]
}

The keys are sorted in ascending order, and the indent argument has been given five spaces in the code above. Sort_key has a default value of False, and indent has a default value of None.

Coding and Decoding

The process of converting text or values into an encrypted form is known as encoding. Only the selected user can use encrypted data after decoding it. Serialization is another name for the encoding, and deserialization is another for decoding. For the JSON(object) format, encoding and decoding are performed. A well-liked module for such tasks is available in Python. The command listed below can be used to install it on Windows:

Encoding - The encode() function, which is part of the demon package, is used to turn a Python object into a JSON string representation.

What follows is the syntax:

Example:1 - Encoding using demjson package

Output:

[{"Age":20,"Name":"Peter","Subject":"Electronics"}]

Decoding- The decode() function of the demon module is used to transform JSON objects into Python format types.

What follows is the syntax:

Output:

['Peter', 'Smith', 'Ricky', 'Hayden']

In this tutorial, we have learned about the Python JSON. JSON is the most effective way to transmit data between the client and the web server.


Next TopicPython Itertools





Youtube For Videos Join Our Youtube Channel: Join Now

Feedback


Help Others, Please Share

facebook twitter pinterest

Learn Latest Tutorials


Preparation


Trending Technologies


B.Tech / MCA