Open In App

JSON Formatting in Python

Improve
Improve
Like Article
Like
Save
Share
Report

JSON (JavaScript Object Notation) is a popular data format that is used for exchanging data between applications. It is a lightweight format that is easy for humans to read and write, and easy for machines to parse and generate.

Python Format JSON

Javascript Object Notation abbreviated as JSON is a lightweight data interchange format. It encodes Python objects as JSON strings and decodes JSON strings into Python objects.

  • Many of the APIs like Github, send their results in this format. JSON is probably most widely used for communicating between the web server and client in an AJAX application but is not limited to that problem domain.
  • For example, if you are trying to build an exciting project like this, you need to format the JSON output to render the necessary results. So let’s dive into the JSON module which Python offers for formatting JSON output.

Python JSON Functions

  • json.dump(obj, fileObj): Serializes obj as a JSON formatted stream to fileObj.
  • json.dumps(obj): Serializes obj as JSON formatted string.
  • json.load(JSONfile): De-serializes JSONfile to a Python object.
  • json.loads(JSONfile): De-serializes JSONfile(type: string) to a Python object.

Python JSON Classes

  • JSONEncoder: An encoder class to convert Python objects to JSON format.
  • JSONDecoder: A decoder class to convert JSON format files into Python obj.

The conversions are based on this conversion table.

Python JSON encoding

The JSON module provides the following two methods to encode Python objects into JSON format. We will be using dump(), dumps(), and JSON.Encoder class. The json.dump() method is used to write Python serialized objects as JSON formatted data into a file. The JSON. dumps() method encodes any Python object into JSON formatted String.

Python3




from io import StringIO
import json
 
fileObj = StringIO()
json.dump(["Hello", "Geeks"], fileObj)
print("Using json.dump(): "+str(fileObj.getvalue()))
 
 
class TypeEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, type):
            return str(obj)
 
 
print("Using json.dumps(): "+str(json.dumps(type(str), cls=TypeEncoder)))
print("Using json.JSONEncoder().encode" +
      str(TypeEncoder().encode(type(list))))
print("Using json.JSONEncoder().iterencode" +
      str(list(TypeEncoder().iterencode(type(dict)))))


Output:

Using json.dump(): ["Hello", "Geeks"]
Using json.dumps(): ""
Using json.JSONEncoder().encode""
Using json.JSONEncoder().iterencode['""']

Decode JSON in Python 

JSON string decoding is done with the help of the inbuilt method json.loads() & json.load() of JSON library in Python. The json.loads() is used to convert the JSON String document into the Python dictionary, and The json.load() is used to read the JSON document from the file.

Python3




from io import StringIO
import json
 
fileObj = StringIO('["Geeks for Geeks"]')
print("Using json.load(): "+str(json.load(fileObj)))
print("Using json.loads(): "+str(json.loads
                  ('{"Geeks": 1, "for": 2, "Geeks": 3}')))
print("Using json.JSONDecoder().decode(): " +
      str(json.JSONDecoder().decode
          ('{"Geeks": 1, "for": 2, "Geeks": 3}')))
print("Using json.JSONDecoder().raw_decode(): " +
      str(json.JSONDecoder().raw_decode('{"Geeks": 1,
                                 "for": 2, "Geeks": 3}')))


Output:

Using json.load(): ['Geeks for Geeks']
Using json.loads(): {'for': 2, 'Geeks': 3}
Using json.JSONDecoder().decode(): {'for': 2, 'Geeks': 3}
Using json.JSONDecoder().raw_decode(): ({'for': 2, 'Geeks': 3}, 34)


Last Updated : 23 Aug, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads