parcheck

A lightweight, minimalist, easy-to-use python toolkit


License
MIT
Install
pip install parcheck==0.1.1

Documentation

python 参数检查器:parcheck

1 一句话介绍

parcheck 可以快速检查输入数据 是不是 我们期望的基本格式

2 使用场景举例:web 接口数据参数检查

很多时候,web 接口通过 json 的方式进行传参。

将 json 转成 python 数据类型后,我们常常需要检查数据的基本格式是否正确,以方便后续处理。

尤其是对于提供给外部使用的接口,往往都需要非常严格检查

但是有时候,传递的数据可能层层嵌套,非常复杂,如果是手动一个个写代码去检查,是非常耗时的。

这个时候就可以用到 parcheckparcheck 可以帮助我们进行非常便捷的检查。

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 目录

欢迎使用

欢迎提问题

欢迎贡献和完善代码