asdict — conversion of dataclass to dict.
1from dataclasses import dataclass, asdict, field2from typing import List34@dataclass5class Address:6 city: str7 street: str89@dataclass10class User:11 name: str12 age: int13 address: Address14 tags: List[str] = field(default_factory=list)1516user = User("Alice", 25, Address("Moscow", "Lenina 1"), ["admin"])1718# Conversion19dict_data = asdict(user)20print(dict_data)21#{22# "name": "Alice",23# "age": 25,24# "address": {"city": "Moscow", "street": "Lenina 1"},25# "tags": ["admin"]26#}2728# Reverse conversion29user2 = User(**dict_data)3031# JSON32import json33json_str = json.dumps(asdict(user), ensure_ascii=False)3435# Filtering36slim = {k: v for k, v in asdict(user).items() if k != "address"}
Advantages: