Deserialize to objects while staying DRY

2022.9.22 · active · verified Thu Apr 16

Desert is a Python library that generates serialization schemas for dataclasses and attrs classes, building upon the Marshmallow library. It aims to help developers write DRY (Don't Repeat Yourself) code by automatically deriving serialization/deserialization logic from class definitions. The library is actively maintained, with its current version being 2022.9.22.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to define dataclasses, create a Desert schema from them, and then load data into the defined objects.

from dataclasses import dataclass
from typing import List
import desert

@dataclass
class Person:
    name: str
    age: int

@dataclass
class Car:
    passengers: List[Person]

# Load some simple data types.
data = {'passengers': [{'name': 'Alice', 'age': 21}, {'name': 'Bob', 'age': 22}]}

# Create a schema for the Car class.
schema = desert.schema(Car)

# Load the data.
car = schema.load(data)

assert car == Car(passengers=[Person(name='Alice', age=21), Person(name='Bob', age=22)])

view raw JSON →