from jsonschema import validate
result = {
"code": 0,
"msg": "login success!",
"token": "000038efz7edc7438d781ab0775000038efz7ed",
"username": "test"
}
# 编写schema
schema = {
'$schema':'http://json-schema.org/draft-04/schema#', # 声明应用的schema规范
'title':'test demo', # 给schema定义标题
'description':'validate result', # 描述当前schema
'type':'object',
'properties':{
'code':{
'description':'status code',
'type':'integer'
},
'msg':{
'description':'response message',
'type':'string'
},
'token':{
'description':'login return token',
'type':'string', # 规定类型为字符串
'maxLength':40,# 最大长度为40位
'minLength':30,
'pattern':'^[a-z0-9]{20,40}$',# 有a-f和数字组成且长度为40位
}
},
'required':['code','msg','token'] #规定校验的json中必须包含'code','msg','token'
}
# 校验json,使用validate。
# 如果校验通过,没有返回值
# 如果校验不通过,抛出jsonschema.exceptions.ValidationError异常。
#如果schema本身有问题,抛出jsonschema.exceptions.SchemaError异常。
validate(instance=result,schema=schema)