Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
How to validate data using Cerberus in python
The Cerberus module in Python provides powerful yet lightweight data validation functions. It allows you to define a schema and validate data against specific conditions, throwing accurate errors when validation fails.
You can apply multiple validation rules to data fields simultaneously, making it ideal for validating dictionaries, JSON data, and API responses.
Installation
Cerberus doesn't come with Python by default, so you need to install it using pip ?
pip install Cerberus
Once installed, import the Validator module ?
from cerberus import Validator
Basic Data Validation
First, create a schema that defines the validation rules ?
from cerberus import Validator
schema = {'numbers': {'type': 'integer'}}
v = Validator(schema)
data = {'numbers': 5}
if v.validate(data):
print("Data is valid")
else:
print("Data is invalid")
Data is valid
Required Fields and Error Messages
You can mark fields as required and access detailed error messages ?
from cerberus import Validator
v = Validator()
v.schema = {'ID': {'required': True, 'type': 'number'},
'age': {'type': 'integer'}}
if v.validate({'age': 60}):
print('Data is valid')
else:
print('Data is invalid')
print(v.errors)
Data is invalid
{'ID': ['required field']}
Setting Value Ranges and Length Constraints
Apply minimum/maximum values for numbers and length constraints for strings ?
from cerberus import Validator
v = Validator()
v.schema = {'name': {'type': 'string', 'minlength': 5},
'age': {'type': 'integer', 'min': 18, 'max': 65}}
if v.validate({'name': 'VJ', 'age': 16}):
print('Data is valid')
else:
print('Data is invalid')
print(v.errors)
Data is invalid
{'age': ['min value is 18'], 'name': ['min length is 5']}
Common Validation Rules
| Rule | Purpose | Example |
|---|---|---|
type |
Data type validation | 'string', 'integer', 'number' |
required |
Field must be present | True/False |
min/max |
Numeric range | 'min': 18, 'max': 65 |
minlength/maxlength |
String length | 'minlength': 5 |
Conclusion
Cerberus provides a flexible way to validate data using custom schemas with multiple validation rules. It's particularly useful for validating JSON data, API responses, and preventing errors in database operations or data analysis workflows.
