Anurag Rana
Posted on June 25, 2019
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:
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 exact location in 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 line of code.
echo '{"first_name": "Anurag", "last_name": "rana"}' | python -m json.tool
output:
{
"first_name": "Anurag",
"last_name": "rana"
}
You can add this crome app to your browser to validate and beautify the JSON strings.
Originally published at www.pythoncircle.com.
More from https://www.pythoncircle.com
Posted on June 25, 2019
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
October 3, 2024
September 6, 2024