python 参数检查器:parcheck
1 一句话介绍
parcheck 可以快速检查输入数据 是不是 我们期望的基本格式
2 使用场景举例:web 接口数据参数检查
很多时候,web 接口通过 json 的方式进行传参。
将 json 转成 python 数据类型后,我们常常需要检查数据的基本格式是否正确,以方便后续处理。
尤其是对于提供给外部使用的接口,往往都需要非常严格检查。
但是有时候,传递的数据可能层层嵌套,非常复杂,如果是手动一个个写代码去检查,是非常耗时的。
这个时候就可以用到 parcheck,parcheck 可以帮助我们进行非常便捷的检查。
parcheck 可以通过一条样例数据快速生成检查模板 pattern,并根据检查模板 pattern进行校验
比如说对于如下的复杂的数据
{
"名字": "大壮",
"年龄": 18,
"爱好": [
"羽毛球",
"足球"
],
"职业经历": [
{
"时间": "2022",
"公司": "google",
"职位": "数据分析",
"项目": [
{
"项目名": "图数据分析",
"项目介绍": "对图数据进行分析",
"项目时长(月)": 12
}
]
},
{
"时间": "2021",
"公司": "facebook",
"职位": "数据开发",
"项目": [
{
"项目名": "流数据分析推荐",
"项目介绍": "通过实时分析数据进行相关推荐",
"项目时长(月)": 6
}
]
}
]
}
假设我们需要检查每一个键是否存在,每一个键对应的值的数据类型。
如果纯手写检查,无疑是很浪费时间的,但是如果使用 parcheck,只需要几行代码便可实现检查
import parcheck
sample = "{数据样例}"
data = "{待检查的数据}"
pattern = parcheck.pattern(sample) # 生成校验模板
result = parcheck.check(data, pattern) # 根据校验模板进行检查,返回检查结果
3 检查示例
import parcheck
data = {
"name": "Tony",
"age": 22
}
# 自定义检查模板:是个 dict,且有 "name", "age" 两个键,"name" 键对应的值是 str,"age" 键对应的值是 int
pattern = {
"struct": "dict",
"elements": {
"name": "str",
"age": "int"
}
}
report = parcheck.check(data, pattern) # 根据检查模板进行检查,返回检查报告
print(report.result) # 打印检查结果
4 推荐使用方法
① 先使用样例数据生成检查模板 pattern
② 如果更细节的需求,可以调整生成的 pattern,存到模板配置中
③ 使用 parcheck 和模板配置进行检查
5 下载方法
pip install parcheck
6 其他更细节的使用方法
项目地址:https://github.com/Agwave/parcheck.git
上面的示例只给了简单的使用方法,一些更细节的检查可以见项目文档。
目前项目完成初版,项目文档见项目 docs 目录
欢迎使用
欢迎提问题
欢迎贡献和完善代码