json ModulePython's built-in json module converts between JSON text and Python dictionaries, lists, strings, numbers, booleans, and None. Every REST API integration, webhook handler, and configuration loader uses json to read and write structured payloads.
JSON keys must always be double-quoted strings, and trailing commas are invalid. Python handles these format rules automatically when you serialize with json.dumps().
Use json.loads() ("load string") to parse JSON text into Python data, and json.dumps() ("dump string") to serialize Python data back into JSON text.
import json
payload = '{"user": "lina", "active": true, "roles": ["editor", "viewer"]}'
data = json.loads(payload)
print(data["user"], data["roles"][0])
output = json.dumps({"status": "ok", "count": 2}, indent=2)
print(output)
For files on disk, use json.load(file) and json.dump(data, file) inside a with open(...) block using UTF-8 encoding.
from pathlib import Path
import json
config = {"theme": "dark", "retries": 3}
Path("settings.json").write_text(json.dumps(config, indent=2), encoding="utf-8")
load/loads and dump/dumps: The trailing s stands for string; json.load() expects a file object, while json.loads() expects a str.set or datetime directly: JSON only supports dicts, lists, strings, numbers, booleans, and null; convert sets to lists and dates to .isoformat().eval() to parse JSON: Never pass untrusted text to eval(); json.loads() is safe and rejects non-JSON syntax like single quotes.Python dict becomes a JSON object, list and tuple become JSON arrays, True/False become true/false, and None becomes null.
Wrap json.loads(raw_text) in try ... except json.JSONDecodeError as err: to log or return a clean validation error.
JSON object keys must be strings, so json.dumps({1: "a"}) produces '{"1": "a"}', and parsing it back yields string keys.
Sign in to track your learning journey, earn industry-recognized certificates, and join our elite developer community.
Quick Access With
Experiment with the code from this lesson in our interactive playground.
You've completed this section! Take a quick 5-question quiz to check your understanding.