GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • PYnative
  • Learn Python ▼
  • Python Basics
  • Python Interview Q&As
  • Exercises ▼
  • C++ Exercises
  • C Programming Exercises
  • Java Exercises
  • C# Exercises
  • Quizzes ▼
  • Java MCQ Quizzes
  • Online Compilers▼
  • Online C Compiler
  • Online C++ Compiler

This view

  • Original page
  • New address

GeezerVison is showing pynative.com — Python JSON Exercise

Home » Python Exercises » Python JSON Exercise

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)

Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.

TweetF  sharein  shareP  Pin

About Vishal

I’m Vishal Hule, the Founder of PYnative.com. As a Python developer, I enjoy assisting students, developers, and learners. Follow me on Twitter.

Related Tutorial Topics:

Python Python Exercises Python JSON

All Coding Exercises:

C Exercises
C++ Exercises
Python Exercises
Java Exercises
C# Exercises

Python Exercises and Quizzes

Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.

  • 15+ Topic-specific Exercises and Quizzes
  • Each Exercise contains 25+ questions
  • Each Quiz contains 25 MCQ
Exercises
Quizzes
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.