如何在Python中使用Cerberus验证数据


介绍

Python中的Cerberus模块提供了强大且轻量级的数验证功能。它的设计使得您可以将其扩展到各种应用程序和自定义验证。

我们首先定义一个模式,然后根据该模式验证数据,并检查它是否与提供的条件匹配。如果不匹配,则会抛出准确的错误以显示出错之处。

可以同时将各种条件应用于数据字段进行验证。

入门

为了使用Cerberus,您必须首先安装它,因为它不包含在Python中。

为了下载和安装它,我们使用pip包管理器。

启动您的终端并使用以下命令。

pip install Cerberus

成功下载并安装Cerberus库后,您必须将其验证器模块导入到您的Python脚本中。

from cerberus import Validator

就是这样。您可以开始验证数据了。

验证字典中的数据

首先,我们必须创建一个模式。

schema = {'numbers': {'type': 'integer'}}
v = Validator(schema)

这意味着,在Python字典中,numbers字段必须只包含整数。

data = {'numbers': 5}

以上是我们需要验证的数据。

if v.validate(data):
   print("Data is valid")
else:
   print("Data is invalid")

这会根据我们之前创建的模式验证数据。

示例

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 .

使用各种规则进行验证并打印错误

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']}


设置最小值和最大值范围

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']}

就是这样,您现在可以使用Cerberus库以类似的方式验证字典、JSON文件等。

结论

您已经学习了如何使用您自己定制的模式使用Cerberus库验证数据。

使用此方法,您可以验证JSON文件、从API提取的数据等。

我们主要为了避免在构建数据库或进行数据分析时出现错误而验证数据。

您甚至可以自动化数据验证并构建基于此的动态网站。

更新于:2021年2月11日

1K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始
广告