json

The Python json module provides tools to encode and decode data in JavaScript Object Notation (JSON), a lightweight data interchange format that’s easy for humans to read and write and easy for machines to parse and generate.

Here’s a quick example:

Python
>>> import json
>>> # Convert a Python dictionary to a JSON string
>>> json.dumps({"name": "Alice", "age": 30})
'{"name": "Alice", "age": 30}'

Key Features

  • Serializes Python object to JSON strings
  • Deserializes JSON strings to Python objects
  • Supports complex data types with custom encoding and decoding

Frequently Used Classes and Functions

Object Type Description
json.dump() Function Serializes a Python object to a JSON-formatted stream
json.dumps() Function Serializes Python objects to a JSON-formatted string
json.load() Function Deserializes a JSON-formatted stream to a Python object
json.loads() Function Deserializes a JSON-formatted string to a Python object
json.JSONEncoder Class Provides a custom encoder for JSON serialization
json.JSONDecoder Class Provides a custom decoder for JSON deserialization

Examples

Serializing a Python dictionary to a JSON string:

Python
>>> import json
>>> data = {"name": "Bob", "age": 25}
>>> json_str = json.dumps(data)
>>> json_str
'{"name": "Bob", "age": 25}'

Deserializing a JSON string to a Python dictionary:

Python
>>> json.loads('{"name": "Bob", "age": 25}')
{'name': 'Bob', 'age': 25}

Serializing with pretty printing:

Python
>>> print(json.dumps(data, indent=2))
{
  "name": "Bob",
  "age": 25
}

Common Use Cases

  • Storing and exchanging data between a web server and a client
  • Configuring applications with JSON files
  • Logging structured data in a human-readable format

Real-World Example

You can use the json module to read configuration data from a JSON file and update it programmatically. Here’s an example of updating a user’s profile information stored in a JSON file:

Python
>>> import json
>>> import pathlib
>>> config_file = pathlib.Path("user_config.json")

>>> # Read the existing configuration
>>> with config_file.open(mode="r", encoding="utf-8") as file:
...     config = json.load(file)
...

>>> # Update user profile information
>>> config["user"]["name"] = "Charlie"
>>> config["user"]["preferences"]["theme"] = "dark"

>>> # Write the updated configuration back to the file
>>> with config_file.open(mode="w", encoding="utf-8") as file:
...     json.dump(config, file, indent=4)
...

>>> # Verify the file update
>>> with config_file.open("r") as file:
...     updated_config = json.load(file)
...

>>> updated_config["user"]["name"]
'Charlie'

This example demonstrates how you can use the json module to read, modify, and write JSON data to a file, facilitating tasks such as application configuration management.

Tutorial

Working With JSON Data in Python

Learn how to work with JSON data in Python using the json module. Convert, read, write, and validate JSON files and handle JSON data for APIs and storage.

intermediate python

For additional information on related topics, take a look at the following resources:


By Leodanis Pozo Ramos • Updated July 15, 2025