Вот, пожалуйста,
from dataclasses import dataclass
@dataclass
class Car:
brand: str
color: str
def asdict(o, skip_empty=False):
return {k: v
for k, v in o.__dict__.items()
if not (skip_empty and v is None)}
if __name__ == '__main__':
c = Car(brand='BMW', color=None)
print(asdict(c, skip_empty=False))
print(asdict(c, skip_empty=True))
, который печатает:
{'brand': 'BMW', 'color': None}
{'brand': 'BMW'}