如果您是系统管理员,则可能是您遇到过Perl,Bash或其他一些脚本语言。您甚至可能自己使用过一个或多个。脚本语言通常用于以一定的速度进行重复,繁琐的工作,并且准确度远远超过没有它们时可以实现的目标。所有语言都是工具。它们只是完成工作的一种手段。他们只有在帮助您更好地完成工作的情况下才有价值。我们相信Python是一个有价值的工具,特别是因为它使您能够有效地完成工作。
我们认为Python非常出色的第一个原因是它很容易学习。如果一种语言不能帮助你很快提高效率,那么该语言的诱惑就会严重减弱。
在这里,我们列出了7个可用于数据验证的最佳python库:

1. Cerberus – 一个轻量级和可扩展的数据验证库。

Cerberus是一个用于Python的轻量级和可扩展的数据验证库。Cerberus提供开箱即用的类型检查和其他基本功能,旨在实现无阻塞和易于扩展,允许自定义验证。它没有依赖关系,并在Python 2.6,Python 2.7,Python 3.3,Python 3.4,Python 3.5,Python 3.6,PyPy和PyPy3下进行了全面测试。
要安装Cerberus,请使用以下命令:

1 pip install cerberus

完成安装后,只需输入“ python setup.py test
7个用于验证数据的最佳Python库 - 图1
7个用于验证数据的最佳Python库

基本上有两个版本可用:

  • 稳定的版本
  • 开发版

基本语法:

1 >>> schema = {‘name’:{‘type’:’string’}}
2 >>> v = Validator(schema)

实例:

1 >> schema = {‘name’:{‘type’:’string’},’age’:{‘type’:’integer’,’min’:10}}
2 >>> document = {‘name’:’ Little Joe’,’age’:5}
3 >>> v.validate(document,schema)
4 False
5 >>> v.errors
6 {‘age’:[‘min value is 10’]}

2. Colander –– 验证和反序列化通过XML,JSON,HTML表单帖子获得的数据。

Colander可用作验证和反序列化通过XML,JSON,HTML表单或任何其他同样简单的数据序列化获得的数据的系统。它在Python 2.7,3.3,3.4,3.5和3.6以及PyPy上进行了测试。漏勺可用于:

可扩展的包,可用于:

  • 反序列化并验证由字符串,映射和列表组成的数据结构。
  • 将任意数据结构序列化为由字符串,映射和列表组成的数据结构。

使用Colander.Email()函数 –

1 def emails_validator(node, kw):
2 new_emails = [e for e in kw if isinstance(e, basestring)]
3 validator = colander.Email()
4 for email in new_emails:
5 validator(node, email)

3. Jsonschema – Python的JSON Schema的实现。

Jsonschema是Python的JSON Schema的实现(支持2.7+,包括Python 3)。

它也可以在控制台中使用:

1 jsonschema -i sample.json sample.schema

7个用于验证数据的最佳Python库 - 图2
7个用于验证数据的最佳Python库

4. Schema – 用于验证Python数据结构的库。

Schema是一个用于验证Python数据结构的库,例如从配置文件,表单,外部服务或命令行解析获得的数据结构,从JSON / YAML(或其他)转换为Python数据类型。

7个用于验证数据的最佳Python库 - 图3
7个用于验证数据的最佳Python库
如果数据有效,Schema.validate将返回经过验证的数据(可选择使用Use calls转换,请参阅下文)。
如果数据无效,Schema将引发SchemaError异常。

Schema的安装非常简单:

1 pip install schema

或者,您可以将schema.py文件放入项目中 – 它是自包含的。
使用Python 2.6,2.7,3.2,3.3,3.4,3.5和PyPy对Schema进行了完美测试。

5.原理图 – 数据结构验证。

Schematics是一个Python库,用于将类型组合到结构中,验证它们,并根据简单的描述转换数据的形状。
内部类似于ORM类型系统,但Schematics中没有数据库层。相反,他们认为,当Schematics处理所有内容但编写查询时,构建数据库层变得非常容易。此外,它可以用于涉及数据库的一系列任务可能没有意义。

一些常见用例:

  • 设计和记录特定的数据结构
  • 将结构转换为不同格式(如JSON或MsgPack)
  • 验证API输入
  • 根据某些数据的收件人的访问权限删除字段
  • 定义通信协议的消息格式,如RPC
  • 自定义持久层

7个用于验证数据的最佳Python库 - 图4
7个用于验证数据的最佳Python库
可以通过pip轻松完成Schematics的安装:

1 pip install schematics

Schematics也可以通过Git安装:

1 git clone https://github.com/schematics/schematics.git

6. Valideer – 轻量级可扩展数据验证和适配库。

Valideer是Python的轻量级数据验证和适配库。

特征 –

  • 支持验证(检查值是否有效)和自适应(将有效输入转换为适当的输出)。
  • 简洁:验证模式可以在声明性和可扩展的迷你“语言”中指定; 无需预先定义详细的模式类。
  • 包括电池:大多数常见类型的验证器都是开箱即用的。
  • 可扩展:可以轻松定义和注册新的自定义验证器和适配器。
  • 信息性,可自定义的错误消息:验证错误包括错误的原因和位置。
  • 不可知:不依赖于任何特定框架或应用程序域(例如Web表单验证)。
  • 经过良好测试:广泛的测试套件,覆盖率达100%。

7个用于验证数据的最佳Python库 - 图5
7个用于验证数据的最佳Python库
要安装Valideer,请在终端中键入以下命令:

1 pip install valideer

或者通过Git实用程序直接安装:

1 git clone https://github.com/podio/valideer
2 cd valideer
3 python setup.py install

7. Voluptuous – 一个Python数据验证库。

尽管有名字,但它是一个Python数据验证库。它主要用于验证作为JSON,YAML等进入Python的数据。
在Github上查看 – https://github.com/alecthomas/voluptuous
官方链接 – https://pypi.python.org/pypi/voluptuous
最新版本 – v0.10.5
文档链接 – http://alecthomas.github.io/妖娆/文档/ _build / HTML / index.html的
7个用于验证数据的最佳Python库 - 图6
7个用于验证数据的最佳Python库

一些特点 –

  • 验证器是简单的callables。
  • 错误是简单的例外。
  • 模式是基本的Python数据结构。
  • 从头开始设计,不仅可以验证表格。
  • 一致性。