The json module allows custom serialization of complex domain models, fine-grained formatting control, and streaming execution.
indent: Specifier for pretty-printing (e.g. indent=2).sort_keys: Sort dictionary output keys alphabetically.separators: Compact encoding tuple e.g. (',', ':').import json
from dataclasses import dataclass, asdict
@dataclass
class UserProfile:
user_id: int
username: str
email: str
def json_advanced_demo() -> None:
profile = UserProfile(101, "alex_dev", "[email protected]")
# Serialize Dataclass using asdict()
compact_json = json.dumps(asdict(profile), separators=(',', ':'))
pretty_json = json.dumps(asdict(profile), indent=2, sort_keys=True)
print("Compact JSON:", compact_json)
print("
Pretty Formatted JSON:
", pretty_json)
if __name__ == "__main__":
json_advanced_demo()
asdict() for Dataclasses: Convert dataclasses to dictionaries with dataclasses.asdict() before passing to json.dumps().separators=(',', ':') to minimize payload size.ensure_ascii=False in json.dumps() if preserving unicode characters (like non-English text or emojis).Serialize a nested dictionary containing unicode characters using json.dumps(..., ensure_ascii=False, indent=2).
Sign in to track your learning journey, earn industry-recognized certificates, and join our elite developer community.
Quick Access With