Python Marshmallow Module
Marshmallow is an ORM/ODM/framework-agnostic library for converting complex data types, such as objects, to and from native Python datatypes. It is widely used for data validation and serialization.
Installation
pip install marshmallow
Defining a Schema
You define a schema to validate and serialize data.
from marshmallow import Schema, fields
class UserSchema(Schema):
name = fields.Str()
email = fields.Email()
created_at = fields.DateTime()
Serialization (Dumping)
Converting objects to dictionaries (or JSON strings).
from datetime import datetime
user_data = {
"name": "Monty",
"email": "monty@python.org",
"created_at": datetime.now()
}
schema = UserSchema()
result = schema.dump(user_data)
print(result)
# Output: {'name': 'Monty', 'email': 'monty@python.org', 'created_at': '...'}
Deserialization (Loading)
Converting dictionaries to objects (and validating them).
json_input = {
"name": "Monty",
"email": "monty@python.org"
}
try:
result = schema.load(json_input)
print(result)
except ValidationError as err:
print(err.messages)
Validation
Marshmallow automatically validates data during deserialization based on field types.