Код: Выделить всё
from dataclasses import dataclass, asdict
from typing import List
@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)])
tmp = {'mylist': [{'x': 0, 'y': 0}, {'x': 10, 'y': 4}]}
assert asdict(c) == tmp
РЕДАКТИРОВАТЬ:
Предлагаемые ответы следующие библиотеки:
- dacite
- mashumaro (некоторое время пользовался, работает хорошо, но быстро столкнулся с хитростью) угловые случаи)
- pydantic (работает очень хорошо, отлично документации и меньше нестандартных ситуаций)
Подробнее здесь: https://stackoverflow.com/questions/533 ... ested-dict
Мобильная версия