Python Tutorial · Working with Data · Lesson 34 of 42

Python JSON

Convert between Python objects and JSON with json.dumps and json.loads.

JSON and Python

JSON is the most common data format on the web. Python maps it naturally: objects ↔ dict, arrays ↔ list, strings ↔ str, numbers ↔ int/float, true/false ↔ True/False, null ↔ None.

Parse JSON

Example 1Try it yourself
import json

text = '{"name": "Ada", "langs": ["Python", "SQL"], "active": true, "manager": null}'
data = json.loads(text)
print(data["name"], data["langs"][0])
print(data["active"], data["manager"])

Output

Ada Python
True None

Create JSON

Example 2Try it yourself
import json

user = {"name": "Ada", "age": 36, "admin": False, "tags": ["a", "b"]}
print(json.dumps(user))
print(json.dumps(user, indent=2, sort_keys=True))

Output

{"name": "Ada", "age": 36, "admin": false, "tags": ["a", "b"]}
{
  "admin": false,
  "age": 36,
  "name": "Ada",
  "tags": [
    "a",
    "b"
  ]
}

Custom objects

json.dumps only knows built-in types. Convert other objects first — for example with dataclasses.asdict(), or pass default=str to stringify things like dates.

Example 3Try it yourself
import json
from dataclasses import dataclass, asdict
from datetime import date

@dataclass
class Event:
    title: str
    day: date

print(json.dumps(asdict(Event("Launch", date(2026, 5, 1))), default=str))

Output

{"title": "Launch", "day": "2026-05-01"}

Test yourself

What does JSON null become in Python?

  1. null
  2. None
  3. 0
  4. ""
Show answer

Answer: None