用于验证CSV文件或类似面向行的数据源中包含的数据的简单库。

csvvalidator的Python项目详细描述


此模块提供了一些简单的实用程序,用于验证csv中包含的数据 文件或其他类似的数据源。

此模块的源代码位于:

https://github.com/alimanfoo/csvvalidator

请通过问题跟踪器报告任何错误或功能请求。

安装

此模块已注册到python包索引,因此您可以执行以下操作:

$ easy_install csvvalidator

…或从http://pypi.python.org/pypi/csvvalidator下载 按常规方式安装:

$ python setup.py install

如果您想获得更大的优势,请克隆源代码存储库:

$ git clone git://github.com/alimanfoo/csvvalidator.git
$ cd csvvalidator
$ python setup.py install

用法

<> > > cvValueSt>/cTIT>类是所有验证对象的基础 能够验证CSV数据。

可以使用csvvalidator类动态构造验证器,例如:

import sys
import csv
from csvvalidator import *

field_names = (
               'study_id',
               'patient_id',
               'gender',
               'age_years',
               'age_months',
               'date_inclusion'
               )

validator = CSVValidator(field_names)

# basic header and record length checks
validator.add_header_check('EX1', 'bad header')
validator.add_record_length_check('EX2', 'unexpected record length')

# some simple value checks
validator.add_value_check('study_id', int,
                          'EX3', 'study id must be an integer')
validator.add_value_check('patient_id', int,
                          'EX4', 'patient id must be an integer')
validator.add_value_check('gender', enumeration('M', 'F'),
                          'EX5', 'invalid gender')
validator.add_value_check('age_years', number_range_inclusive(0, 120, int),
                          'EX6', 'invalid age in years')
validator.add_value_check('date_inclusion', datetime_string('%Y-%m-%d'),
                          'EX7', 'invalid date')

# a more complicated record check
def check_age_variables(r):
    age_years = int(r['age_years'])
    age_months = int(r['age_months'])
    valid = (age_months >= age_years * 12 and
             age_months % age_years < 12)
    if not valid:
        raise RecordError('EX8', 'invalid age variables')
validator.add_record_check(check_age_variables)

# validate the data and write problems to stdout
data = csv.reader('/path/to/data.csv', delimiter='\t')
problems = validator.validate(data)
write_problems(problems, sys.stdout)

对于更复杂的用例,还可以使用子类csvvalidator来定义 特定数据源的可重用验证程序类。

对于本模块提供的所有功能的完整说明, 请参见源代码存储库中的example.py和tests.py模块。

注释

注意,csvvalidator模块打算与 标准的pythoncsv模块。csvvalidator模块不会 验证csv文件的语法。相反,csvvalidator模块可以是 用于验证任何面向行的数据源,如 csv.reader对象。

即,如果要验证csv文件中的数据,必须首先构造 使用标准pythoncsv模块的csv阅读器,指定适当的 方言,然后将csv读取器作为数据源传递给 csvvalidator.validatecsvvalidator.ivalidate方法。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无法在Netbeans 8.2 JDK8u231中创建java Maven项目(Web应用程序)   java如何以设定的时间间隔生成随机数?   java从socket和inputStream的慢速读取   spring SCORM:Java中基于Web的SCORM播放器   Java将函数传递给方法   java绑定通用服务及其实现和子类型   java如何在运行时从选择列表框中动态选择选项?爪哇硒   java Selenium WebDriver什么是“Selenium客户端和WebDriver语言绑定”   elasticsearch需要elasticsearch高级Java客户端更新ByQueryRequest API帮助   JAVA哈希表查找最大值   WSDL操作中的java soapAction属性为空   java访问封闭类或父类方法的一般方法   eclipse在java中运行带有SeleneTestCase的ANT。lang.NoClassDefFoundError   java Hazelcast不会在节点启动时填充ReplicatedMap   如何在Java中从excel中读取特定行?   html JAVA将本地时间(GMT+8)转换为UTC时间   java将自定义端点添加到Spring数据REST存储库中,并以大摇大摆的方式显示   java计算未来位置