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:
Contents
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:
rana@Brahma: scripts$ python3 jsonParse.py { "first_name": "Anurag", "last_name": "Rana", "key3": { "key1": "key2" } } rana@Brahma: 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]