Bird
Raised Fist0
Pythonprogramming~10 mins

Serializing and deserializing JSON in Python - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to convert a Python dictionary to a JSON string.

Python
import json

data = {"name": "Alice", "age": 30}
json_string = json.[1](data)
print(json_string)
Drag options to blanks, or click blank then click option'
Aloads
Bdumps
Cload
Ddump
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'dump' instead of 'dumps' which writes to a file instead of returning a string.
Using 'load' or 'loads' which are for reading JSON, not writing.
2fill in blank
medium

Complete the code to convert a JSON string back to a Python dictionary.

Python
import json

json_string = '{"name": "Bob", "age": 25}'
data = json.[1](json_string)
print(data)
Drag options to blanks, or click blank then click option'
Aload
Bdumps
Cloads
Ddump
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'load' which expects a file object, not a string.
Using 'dump' or 'dumps' which are for writing JSON, not reading.
3fill in blank
hard

Fix the error in the code to correctly write a Python dictionary to a JSON file.

Python
import json

data = {"city": "Paris", "population": 2148327}
with open('data.json', 'w') as file:
    json.[1](data, file)
Drag options to blanks, or click blank then click option'
Adump
Bloads
Cdumps
Dload
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'dumps' which returns a string instead of writing to a file.
Using 'loads' or 'load' which are for reading JSON.
4fill in blank
hard

Fill both blanks to deserialize JSON from a file and print the Python object.

Python
import json

with open('info.json', 'r') as [1]:
    data = json.[2]([1])
print(data)
Drag options to blanks, or click blank then click option'
Afile
Bloads
Cload
Df
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'loads' which expects a string, not a file object.
Using a different variable name inside the block than the one used in 'with open'.
5fill in blank
hard

Fill all three blanks to serialize a Python dictionary with indentation and sort keys.

Python
import json

person = {"name": "Eve", "age": 28, "city": "Berlin"}
json_string = json.[1](person, indent=[2], sort_keys=[3])
print(json_string)
Drag options to blanks, or click blank then click option'
Adump
Bdumps
CTrue
D4
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'dump' which writes to a file instead of returning a string.
Passing indentation as a string instead of a number.
Setting sort_keys to a string instead of a boolean.

Practice

(1/5)
1. What does the json.dumps() function do in Python?
easy
A. Reads JSON data from a file
B. Converts Python data into a JSON formatted string
C. Converts JSON string back to Python data
D. Writes Python data directly to a file

Solution

  1. Step 1: Understand the purpose of json.dumps()

    This function takes Python objects like dictionaries or lists and turns them into a JSON string.
  2. Step 2: Differentiate from other JSON functions

    json.loads() converts JSON strings back to Python objects, while dumps() does the opposite.
  3. Final Answer:

    Converts Python data into a JSON formatted string -> Option B
  4. Quick Check:

    Serialize = Python to JSON string [OK]
Hint: Remember: dumps() means dump Python to JSON string [OK]
Common Mistakes:
  • Confusing dumps() with loads()
  • Thinking dumps() writes to a file
  • Assuming dumps() reads JSON data
2. Which of the following is the correct syntax to deserialize a JSON string json_str into a Python object?
easy
A. json.load(json_str)
B. json.dumps(json_str)
C. json.loads(json_str)
D. json.deserialize(json_str)

Solution

  1. Step 1: Identify the function to convert JSON string to Python

    The correct function is json.loads(), which takes a JSON string and returns Python data.
  2. Step 2: Check other options for correctness

    json.dumps() serializes Python to JSON string, json.load() reads JSON from a file object, and json.deserialize() does not exist.
  3. Final Answer:

    json.loads(json_str) -> Option C
  4. Quick Check:

    loads() = JSON string to Python [OK]
Hint: Use loads() to load JSON string into Python [OK]
Common Mistakes:
  • Using dumps() instead of loads()
  • Confusing load() with loads()
  • Using a non-existent deserialize() function
3. What will be the output of the following code?
import json
py_data = {'name': 'Alice', 'age': 30}
json_str = json.dumps(py_data)
print(type(json_str))
medium
A. <class 'dict'>
B. TypeError
C. <class 'list'>
D. <class 'str'>

Solution

  1. Step 1: Understand what json.dumps() returns

    The json.dumps() function converts Python data into a JSON string, so the result is a string type.
  2. Step 2: Check the printed type

    The type(json_str) will be <class 'str'> because json_str holds a JSON string.
  3. Final Answer:

    <class 'str'> -> Option D
  4. Quick Check:

    dumps() output type = str [OK]
Hint: dumps() returns a string, so type is str [OK]
Common Mistakes:
  • Thinking dumps() returns a dict
  • Confusing dumps() with loads()
  • Expecting a list type output
4. The following code raises an error. What is the mistake?
import json
json_str = '{"name": "Bob", "age": 25}'
py_data = json.load(json_str)
print(py_data)
medium
A. json.load() expects a file object, not a string
B. json_str is not a valid JSON string
C. json.loads() should be replaced with json.dumps()
D. Missing import statement for json module

Solution

  1. Step 1: Understand the difference between json.load() and json.loads()

    json.load() reads JSON data from a file-like object, not from a string.
  2. Step 2: Identify correct function for string input

    To convert a JSON string to Python data, use json.loads() instead of json.load().
  3. Final Answer:

    json.load() expects a file object, not a string -> Option A
  4. Quick Check:

    load() = file, loads() = string [OK]
Hint: Use loads() for strings, load() for files [OK]
Common Mistakes:
  • Using load() on a string instead of loads()
  • Assuming json_str is invalid JSON
  • Confusing dumps() and loads()
5. You have a Python list data = [{'id': 1}, {'id': 2}, {'id': 3}]. You want to serialize it to JSON but only include dictionaries where id is greater than 1. Which code correctly does this?
hard
A. json.dumps([item for item in data if item['id'] > 1])
B. json.dumps(data.filter(lambda x: x['id'] > 1))
C. json.dumps(filter(lambda x: x['id'] > 1, data))
D. json.dumps([item for item in data if item.id > 1])

Solution

  1. Step 1: Filter list with list comprehension

    Use a list comprehension to select dictionaries where id is greater than 1: [item for item in data if item['id'] > 1].
  2. Step 2: Serialize filtered list to JSON string

    Pass the filtered list to json.dumps() to get the JSON string.
  3. Final Answer:

    json.dumps([item for item in data if item['id'] > 1]) -> Option A
  4. Quick Check:

    Filter with list comprehension, then dumps() [OK]
Hint: Filter with list comprehension before dumps() [OK]
Common Mistakes:
  • Using filter() without converting to list
  • Trying to access dict keys with dot notation
  • Using filter() result directly without list()