Scripting

Validate, format and Beautify JSON string using Python

 

Python with Json-Automation Laboratories

As per official JSON website, JSON is a light-weight data interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition — December 1999.

In this small article, we will see how to validate and format the JSON string using python.

Format JSON string:

import json
json_string =  '{"first_name": "Anurag", "last_name":"Rana", "key3": {"key1":"key2"}}'
try:
    parsed_json = json.loads(json_string)
    print(json.dumps(parsed_json, indent = 4,sort_keys=False))
except Exception as e:
    print(repr(e))

output:

[email protected]: scripts$ python3 jsonParse.py 
{
    "first_name": "Anurag",
    "last_name": "Rana",
    "key3": {
        "key1": "key2"
    }
}
[email protected]: scripts$

Parameter indent decides the number of spaces to use for indentation. Parameter sort_keys decides whether the keys in formatted JSON should be in sorted order or not. The default value is False.

Format JSON file:

We can use the same code to format and validate the JSON file. Place a .json file with below content in the current working directory.

{"a": "b","c": "d","e": ["f","g","h"]}

Now use this piece of code to format the JSON file.

import json
json_string = None
with open("json_file.json") as f:
    json_string = f.read()
try:
    parsed_json = json.loads(json_string)
    formatted_json = json.dumps(parsed_json, indent = 4,sort_keys=True)
    with open("json_file.json","w") as f:
        f.write(formatted_json)
except Exception as e:
    print(repr(e))

Error in JSON validation:

Any error in JSON string will be reported with the exact location in the string.
For example, a comma is missing in below JSON string.

import json
json_string =  '{"first_name": "Anurag" "last_name":"Rana", "key3": {"key1":"key2"}}'
try:
    parsed_json = json.loads(json_string)
    print(json.dumps(parsed_json, indent = 4,sort_keys=True))
except Exception as e:
    print(repr(e))

output:

JSONDecodeError("Expecting ',' delimiter: line 1 column 25 (char 24)",)

Bonus:

You can pretty-print the small JSON string directly at command terminal without using python script file. Use below a line of code.

echo '{"first_name": "Anurag", "last_name": "rana"}' | python -m json.tool

output:

{
    "first_name": "Anurag",
    "last_name": "rana"
}

Hosting Django App on PythonAnyWhere server.

If you like this post, give it some sharing ?

I hope you enjoyed what has been introduced in this post about the validation, format and Beautifying JSON string via Python.

Thank you ?

[ratings]

 

Leave a Reply

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