Python - JSON
JSON is a syntax for storing and exchanging data.
JSON is text, written with JavaScript object notation.
Python has a built-in package called json, which can be used to work with JSON data.
Import the json module:
import json
If you have a JSON string, you can parse it by using the json.loads() method.
Convert from JSON to Python:
import json
# some JSON:
x='{"name": "freedom","age": 2,"year": 2018}'
# parse x:
y=json.loads(x)
# the result is a Python dictionary:
print(y)
=======o/p========
{'name': 'freedom', 'age': 2, 'year': 2018}
If you have a Python object, you can convert it into a JSON string by using the json.dumps() method.
Convert from Python to JSON :
import json
# some python:
x={
"name":"freedom",
"age":2,
"year":2018
}
# parse x:
y=json.dumps(x)
# the result is a Python dictionary:
print(y)
=======o/p=======
{'name': 'freedom', 'age': 2, 'year': 2018}
You can convert Python objects of the following types, into JSON strings:
Convert Python objects into JSON strings, and print the values:
import json
print(json.dumps({"name": "johanes", "age": 25}))
print(json.dumps(["samsung", "oppo"]))
print(json.dumps(("strawberry", "raspberry")))
print(json.dumps("Hey welcome!"))
print(json.dumps(58))
print(json.dumps(101.760))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))
==========O/P===========
{"name": "johanes", "age": 25}
["samsung", "oppo"]
["strawberry", "raspberry"]
"Hey welcome!"
58
101.76
true
false
null
When you convert from Python to JSON, Python objects are converted into the JSON (JavaScript) equivalent:
Python | JSON |
---|---|
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
Example
Convert a Python object containing all the legal data types:
import json
x={
"name": "sweejya",
"surname": "abcd",
"standard": 4,
"address": "laxminagar",
"marital status": "no",
"school": "a to z school",
"cars":[
{"model":"swift","mpg":27.5}
]
}
print(json.dumps(x))
=========o/p===========
{"name": "sweejya", "surname": "abcd", "standard": 4, "address": "laxminagar", "marital status": "no", "school": "a to z school", "cars": [{"model": "swift", "mpg": 27.5}]}
The example above prints a JSON string, but it is not very easy to read, with no indentations and line breaks.
The json.dumps() method has parameters to make it easier to read the result:
Example
Use the indent parameter to define the numbers of indents:
import json
x={
"name": "sweejya",
"surname": "abcd",
"standard": 4,
"address": "laxminagar",
"marital status": "no",
"school": "a to z school",
"cars":[
{"model":"swift","mpg":27.5}
]
}
print(json.dumps(x,indent=4))
==========o/p===========
{
"name": "sweejya",
"surname": "abcd",
"standard": 4,
"address": "laxminagar",
"marital status": "no",
"school": "a to z school",
"cars": [
{
"model": "swift",
"mpg": 27.5
}
]
}
You can also define the separators, default value is (", ", ": "), which means using a comma and a space to separate each object, and a colon and a space to separate keys from values:
Example
Use the separators parameter to change the default separator:
import json
x={
"name": "sweejya",
"surname": "abcd",
"standard": 4,
"address": "laxminagar",
"marital status": "no",
"school": "a to z school",
"cars":[
{"model":"swift","mpg":27.5}
]
}
# use . and a space to separate objects, and a space, a = and a space to separate keys from their values:
print(json.dumps(x,indent=4,separators=(". ", "= ")))
============o/p=============
{
"name"= "sweejya".
"surname"= "abcd".
"standard"= 4.
"address"= "laxminagar".
"marital status"= "no".
"school"= "a to z school".
"cars"= [
{
"model"= "swift".
"mpg"= 27.5
}
]
}
The json.dumps() method has parameters to order the keys in the result :
Example
Use the sort_keys parameter to specify if the result should be sorted or not:
import json
x={
"name": "sweejya",
"surname": "abcd",
"standard": 4,
"address": "laxminagar",
"marital status": "no",
"school": "a to z school",
"cars":[
{"model":"swift","mpg":27.5}
]
}
# sort the result alphabetically by keys:
print(json.dumps(x,indent=4,sort_keys=True))
===========o/p===========
{
"address": "laxminagar",
"cars": [
{
"model": "swift",
"mpg": 27.5
}
],
"marital status": "no",
"name": "sweejya",
"school": "a to z school",
"standard": 4,
"surname": "abcd"
}