Python › Dataclasses & NamedTuples
How do you convert a dataclass instance to and from a dictionary using dataclasses.asdict() and manual reconstruction?
AdvancedAnswer
dataclasses.asdict(instance) recursively converts a dataclass instance (including NESTED dataclasses) into a plain dictionary, useful for JSON serialization; there's no built-in 'fromdict', so reconstruction typically uses `ClassName(**data)` for simple flat cases, or a custom classmethod for nested structures.
from dataclasses import dataclass, asdict
@dataclass
class Address:
city: str
@dataclass
class User:
name: str
address: Address
u = User("Sam", Address("NYC"))
print(asdict(u)) # {'name': 'Sam', 'address': {'city': 'NYC'}} -- fully recursiveReal-world example Serializing a dataclass instance (including nested dataclasses) into a plain dict, ready for json.dumps().