dataclasses and JSON
Python dataclasses can be serialised to JSON with dataclasses.asdict() and deserialised manually or with dacite.
Python dataclasses can be serialised to JSON with dataclasses.asdict() and deserialised manually or with dacite.
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)
For nested dataclasses, use the dacite library: dacite.from_dict(Post, data) handles recursion.