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
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
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.
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?
nullNone0""
Show answer
Answer: None