mashumaro

3.20 · active · verified Sun Mar 29

mashumaro is a fast and well-tested serialization library built on top of Python dataclasses. It provides efficient conversion of dataclass instances to and from various formats like JSON, YAML, TOML, MessagePack, and plain dictionaries. It is actively maintained with frequent releases, currently at version 3.20.

Warnings

Install

Imports

Quickstart

Define a dataclass inheriting from `DataClassJSONMixin` to automatically gain `to_json()` and `from_json()` methods for seamless JSON serialization and deserialization.

from dataclasses import dataclass
from mashumaro.mixins.json import DataClassJSONMixin

@dataclass
class User(DataClassJSONMixin):
    name: str
    email: str
    age: int

# Serialize to JSON
user = User(name='Alice', email='alice@example.com', age=30)
json_str = user.to_json()
print(f"Serialized: {json_str}")

# Deserialize from JSON
restored_user = User.from_json(json_str)
print(f"Deserialized: {restored_user}")
assert restored_user == user

view raw JSON →