一个用于验证CSV文件或类似行方向数据源中数据的简单库。
项目描述
此模块提供了一些用于验证CSV文件或其他类似数据源中数据的简单实用工具。
此模块的源代码位于
请通过那里的问题跟踪器报告任何错误或功能请求。
安装
此模块已在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
用法
CSVValidator类是所有能够验证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模块旨在与标准的Python csv模块一起使用。csvvalidator模块不会验证CSV文件的语法。相反,csvvalidator模块可以用于验证任何行方向数据源,例如由csv.reader对象提供的源。
例如,如果您想验证CSV文件中的数据,您首先需要使用标准的Python csv模块构建一个CSV读取器,指定适当的方言,然后将CSV读取器作为数据源传递给CSVValidator.validate或CSVValidator.ivalidate方法。
项目详情
关闭
csvvalidator-1.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1f222993589f9d8f8d83088d0bf80475462e5fa848baf920d0c03c03690c37e |
|
MD5 | 71f9466c06111c7248509c8c48386b2e |
|
BLAKE2b-256 | 22cd0b1a28226ed8cefb15bb0024a2adb6b6018b7248e0a75320ffeac316e6fb |