json_verify
说明: 主要用于json数据diff,输出匹配的字段信息、字段匹配准确率
gitlab: https://github.com/DaoSen-v/JsonDiff
安装方式:
pip install verify_json
1、 生成契约校验实例
from verify_json import JsonVerify
demo_json = {
"msg": "一段文字信息",
"phone": 13746067836,
"name": [
{
"age": 12},
{
"phone": 213213, "age": 18}
]
}
check_json = {
"msg": None,
"address": "上海",
"name": [
{
"age": 12, "language": "chinese"},
{
"phone": 213213, "age": 18},
]
}
instance = JsonVerify(demo_json)
instance.verify(check_json)
print(instance.info)
>>>
{
"loseKey": ["phone"], "increaseKey": ["address", "name.0.language"], "keyError": {
"msg": {
"type_rules": ["str"], "check_value": null, "detail": "数据类型错误"}}, "patchRate": "66.67%"}
备注:校验规则{key:value}
value:为列表类型时默认校验列表元素,每个元素与锲约列表匹配程度,与元素在列表中顺序无关、与元素长短无关
默认契约校验为值数据类型作为校验规则
- loseKey: 被检验json数据缺少的key
- increaseKey:被检验json增加的key
- keyError:被检验json的key对应value不符合锲约要求
- patchRate:所有key匹配的正确率(increaseKey不参与运算)
2、自定义契约
自定义契约字段需要加上 下划线 前后缀
如锲约json:
{
"name": "百里清"}
自定义锲约时:
{
"_name_": {
"value_rules":