ID EN
Dataclasses

asdict

Python 3.11

Converts the dataclass obj to a dict (by using the factory function dict_factory). Each dataclass is converted to a dict of its fields, as name: value pairs. dataclasses, dicts, lists, and tuples are recursed into. Other objects are copied with copy.deepcopy().

Syntax

PYTHON
dataclasses.asdict(obj, *, dict_factory=dict)

Examples

Example 1
PYTHON
@dataclass
class Point:
     x: int
     y: int

@dataclass
class C:
     mylist: list[Point]

p = Point(10, 20)
assert asdict(p) == {'x': 10, 'y': 20}

c = C([Point(0, 0), Point(10, 4)])
assert asdict(c) == {'mylist': [{'x': 0, 'y': 0}, {'x': 10, 'y': 4}]}
Example 2
PYTHON
dict((field.name, getattr(obj, field.name)) for field in fields(obj))

See Also

copy.deepcopy() TypeError