This Python JSON exercise helps Python developers to practice JSON creation, manipulation, and parsing. As you know, JSON (an acronym for JavaScript Object Notation) is a data-interchange format and is commonly used for client-server communication.
Read Python JSON tutorials for any help.
This exercise includes the following: –
- It has 9 questions and solutions provided for each question.
- Each question includes a specific JSON concept you need to learn. When you complete each question, you get more familiar with JSON encoding and decoding in Python.
- Also, Solve Python Exercises: 29 topic-wise exercises with over 800+ coding questions
Use Online Code Editor to solve exercise questions.
Table of contents
- Exercise 1: Convert the following dictionary into JSON format
- Exercise 2: Access the value of key2 from the following JSON
- Exercise 3: PrettyPrint following JSON data
- Exercise 4: Sort JSON keys in and write them into a file
- Exercise 5: Access the nested key ‘salary’ from the following JSON
- Exercise 6: Convert the following Vehicle Object into JSON
- Exercise 7: Convert the following JSON into Vehicle Object
- Exercise 8: Check whether following json is valid or invalid. If Invalid correct it
- Exercise 9: Parse the following JSON to get all the values of a key ‘name’ within an array
Exercise 1: Convert the following dictionary into JSON format
data = {"key1" : "value1", "key2" : "value2"}Code language: Python (python)
Expected Output:
data = {"key1" : "value1", "key2" : "value2"}
Show Solution
import json
data = {"key1" : "value1", "key2" : "value2"}
jsonData = json.dumps(data)
print(jsonData)Code language: Python (python)Exercise 2: Access the value of key2 from the following JSON
import json
sampleJson = """{"key1": "value1", "key2": "value2"}"""
# write code to print the value of key2Code language: Python (python)
Expected Output:
value2
Show Solution
import json
sampleJson = """{"key1": "value1", "key2": "value2"}"""
data = json.loads(sampleJson)
print(data['key2'])Code language: Python (python)Exercise 3: PrettyPrint following JSON data
PrettyPrint following JSON data with indent level 2 and key-value separators should be (",", " = ").
sampleJson = {"key1": "value1", "key2": "value2"}Code language: Python (python)
Expected Output:
{
"key1" = "value2",
"key2" = "value2",
"key3" = "value3"
}
Show Solution
import json
sampleJson = {"key1" : "value2", "key2" : "value2", "key3" : "value3"}
prettyPrintedJson = json.dumps(sampleJson, indent=2, separators=(",", " = "))
print(prettyPrintedJson)
Code language: Python (python)Exercise 4: Sort JSON keys in and write them into a file
Sort following JSON data alphabetical order of keys
sampleJson = {"id" : 1, "name" : "value2", "age" : 29}Code language: Python (python)
Expected Output:
{
"age": 29,
"id": 1,
"name": "value2"
}
Show Solution
import json
sampleJson = {"id" : 1, "name" : "value2", "age" : 29}
print("Started writing JSON data into a file")
with open("sampleJson.json", "w") as write_file:
json.dump(sampleJson, write_file, indent=4, sort_keys=True)
print("Done writing JSON data into a file")Code language: Python (python)Exercise 5: Access the nested key ‘salary’ from the following JSON
import json
sampleJson = """{
"company":{
"employee":{
"name":"emma",
"payble":{
"salary":7000,
"bonus":800
}
}
}
}"""
# write code to print the value of salaryCode language: Python (python)
Expected Output:
7000
Show Solution
import json
sampleJson = """{
"company":{
"employee":{
"name":"emma",
"payble":{
"salary":7000,
"bonus":800
}
}
}
}"""
data = json.loads(sampleJson)
print(data['company']['employee']['payble']['salary'])
Code language: Python (python)Exercise 6: Convert the following Vehicle Object into JSON
import json
class Vehicle:
def __init__(self, name, engine, price):
self.name = name
self.engine = engine
self.price = price
vehicle = Vehicle("Toyota Rav4", "2.5L", 32000)
# Convert it into JSON formatCode language: Python (python)
Expected Output:
{
"name": "Toyota Rav4",
"engine": "2.5L",
"price": 32000
}
Show Solution
import json
from json import JSONEncoder
class Vehicle:
def __init__(self, name, engine, price):
self.name = name
self.engine = engine
self.price = price
class VehicleEncoder(JSONEncoder):
def default(self, o):
return o.__dict__
vehicle = Vehicle("Toyota Rav4", "2.5L", 32000)
print("Encode Vehicle Object into JSON")
vehicleJson = json.dumps(vehicle, indent=4, cls=VehicleEncoder)
print(vehicleJson)Code language: Python (python)Exercise 7: Convert the following JSON into Vehicle Object
{ "name": "Toyota Rav4", "engine": "2.5L", "price": 32000 }
For example, we should be able to access Vehicle Object using the dot operator like this.
vehicleObj.name, vehicleObj.engine, vehicleObj.price
Show Solution
import json
class Vehicle:
def __init__(self, name, engine, price):
self.name = name
self.engine = engine
self.price = price
def vehicleDecoder(obj):
return Vehicle(obj['name'], obj['engine'], obj['price'])
vehicleObj = json.loads('{ "name": "Toyota Rav4", "engine": "2.5L", "price": 32000 }',
object_hook=vehicleDecoder)
print("Type of decoded object from JSON Data")
print(type(vehicleObj))
print("Vehicle Details")
print(vehicleObj.name, vehicleObj.engine, vehicleObj.price)Code language: Python (python)Exercise 8: Check whether following json is valid or invalid. If Invalid correct it
{
"company":{
"employee":{
"name":"emma",
"payble":{
"salary":7000
"bonus":800
}
}
}
}
Show Solution
Solution 1:
Python provides The json.tool module to validate JSON objects from the command line. Run the following command.
Command: echo "JSON DATA" | python -m json.tool
echo { "company":{ "employee":{ "name":"emma", "payble":{ "salary":7000 "bonus":800} } } } | python -m json.tool
Code language: Python (python)Output:
Expecting ',' delimiter: line 1 column 68 (char 67)
Just add ',' after "salary":7000 to solve the error.
Solution 2
import json
def validateJSON(jsonData):
try:
json.loads(jsonData)
except ValueError as err:
return False
return True
InvalidJsonData = """{ "company":{ "employee":{ "name":"emma", "payble":{ "salary":7000 "bonus":800} } } }"""
isValid = validateJSON(InvalidJsonData)
print("Given JSON string is Valid", isValid)Code language: Python (python)Exercise 9: Parse the following JSON to get all the values of a key ‘name’ within an array
[
{
"id":1,
"name":"name1",
"color":[
"red",
"green"
]
},
{
"id":2,
"name":"name2",
"color":[
"pink",
"yellow"
]
}
]
Expected Output:
["name1", "name2"]
Show Solution
import json
sampleJson = """[
{
"id":1,
"name":"name1",
"color":[
"red",
"green"
]
},
{
"id":2,
"name":"name2",
"color":[
"pink",
"yellow"
]
}
]"""
data = []
try:
data = json.loads(sampleJson)
except Exception as e:
print(e)
dataList = [item.get('name') for item in data]
print(dataList)
Code language: Python (python)