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

如果您是系统管理员,则可能是您遇到过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,请使用以下命令:

pip install cerberus

 

完成安装后,只需输入“ python setup.py test ”

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

 

 

基本上有两个版本可用:

  • 稳定的版本
  • 开发版

 

基本语法:

>>> schema = {'name':{'type':'string'}} 
>>> v = Validator(schema)

 

实例:

>> schema = {'name':{'type':'string'},'age':{'type':'integer','min':10}} 
>>> document = {'name':' Little Joe','age':5} 
>>> v.validate(document,schema)
False 
>>> v.errors 
{'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()函数 –

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

 

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

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

 

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

jsonschema -i sample.json sample.schema
7个用于验证数据的最佳Python库
7个用于验证数据的最佳Python库

 

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

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

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

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

 

Schema的安装非常简单:

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库
7个用于验证数据的最佳Python库

可以通过pip轻松完成Schematics的安装:

 pip install schematics

Schematics也可以通过Git安装:

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

 

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

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

 

特征 –

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

要安装Valideer,请在终端中键入以下命令:

 pip install valideer

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

git clone https://github.com/podio/valideer 
cd valideer 
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库
7个用于验证数据的最佳Python库

 

一些特点 –

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

 

本文:7个用于验证数据的最佳Python库

Leave a Reply