SyntaxStudy
Sign Up
Python JSON with dataclasses
Python Intermediate 4 min read

JSON with dataclasses

dataclasses and JSON

Python dataclasses can be serialised to JSON with dataclasses.asdict() and deserialised manually or with dacite.

Example
import json, dataclasses
from dataclasses import dataclass, field, asdict
from typing import List

@dataclass
class Post:
    id: int
    title: str
    tags: List[str] = field(default_factory=list)

post = Post(id=1, title="Hello", tags=["python", "json"])
json_str = json.dumps(asdict(post))
# Deserialise
data = json.loads(json_str)
back = Post(**data)
Pro Tip

For nested dataclasses, use the dacite library: dacite.from_dict(Post, data) handles recursion.