如果您是系统管理员,则可能是您遇到过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库
- 在Github上查看 – https://github.com/pyeve/cerberus
- 官方链接 – http://python-cerberus.org/
- 文档链接 – http://docs.python-cerberus.org/en/stable/
- 最新版本 – v1.2
基本上有两个版本可用:
- 稳定的版本
- 开发版
基本语法:
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上进行了测试。漏勺可用于:
- 在Github上查看 – https://github.com/Pylons/colander
- 官方链接 – https://docs.pylonsproject.org/projects/colander/en/latest/
- 最新版本 – v1.4
可扩展的包,可用于:
- 反序列化并验证由字符串,映射和列表组成的数据结构。
- 将任意数据结构序列化为由字符串,映射和列表组成的数据结构。
使用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)。
- 在Github上查看 – https://github.com/Julian/jsonschema
- 官方链接 – https://python-jsonschema.readthedocs.io/en/latest/
- 最新版本 – v2.6.0
它也可以在控制台中使用:
1 | jsonschema -i sample.json sample.schema |
---|---|
7个用于验证数据的最佳Python库
4. Schema – 用于验证Python数据结构的库。
Schema是一个用于验证Python数据结构的库,例如从配置文件,表单,外部服务或命令行解析获得的数据结构,从JSON / YAML(或其他)转换为Python数据类型。
- 在Github上查看 – https://github.com/keleshev/schema
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处理所有内容但编写查询时,构建数据库层变得非常容易。此外,它可以用于涉及数据库的一系列任务可能没有意义。
- 在Github上查看 – https://github.com/schematics/schematics
- 官方链接 – http://schematics.readthedocs.io/en/latest/
- 最新版本 – v2.0.1
一些常见用例:
- 设计和记录特定的数据结构
- 将结构转换为不同格式(如JSON或MsgPack)
- 验证API输入
- 根据某些数据的收件人的访问权限删除字段
- 定义通信协议的消息格式,如RPC
- 自定义持久层
7个用于验证数据的最佳Python库
可以通过pip轻松完成Schematics的安装:
1 | pip install schematics |
---|---|
Schematics也可以通过Git安装:
1 | git clone https://github.com/schematics/schematics.git |
---|---|
6. Valideer – 轻量级可扩展数据验证和适配库。
Valideer是Python的轻量级数据验证和适配库。
- 在Github上查看 – https://github.com/podio/valideer
特征 –
- 支持验证(检查值是否有效)和自适应(将有效输入转换为适当的输出)。
- 简洁:验证模式可以在声明性和可扩展的迷你“语言”中指定; 无需预先定义详细的模式类。
- 包括电池:大多数常见类型的验证器都是开箱即用的。
- 可扩展:可以轻松定义和注册新的自定义验证器和适配器。
- 信息性,可自定义的错误消息:验证错误包括错误的原因和位置。
- 不可知:不依赖于任何特定框架或应用程序域(例如Web表单验证)。
- 经过良好测试:广泛的测试套件,覆盖率达100%。
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库
一些特点 –
- 验证器是简单的callables。
- 错误是简单的例外。
- 模式是基本的Python数据结构。
- 从头开始设计,不仅可以验证表格。
- 一致性。