pip install colander
python
import colander
python
class PersonSchema(colander.MappingSchema):
name = colander.SchemaNode(colander.String())
age = colander.SchemaNode(colander.Int())
python
data = {'name': 'John Doe', 'age': 25}
validator = PersonSchema()
clean_data = validator.deserialize(data)
python
def validate_email(node, value):
if not re.match(r"[^@]+@[^@]+\.[^@]+", value):
raise colander.Invalid(node, 'Invalid email address')
python
email = colander.SchemaNode(colander.String(), validator=validate_email)
python
try:
clean_data = validator.deserialize(data)
except colander.Invalid as e:
errors = e.asdict()
for field, error in errors.items():
print(f"Field '{field}' has error: {error}")