python中使用schema对json格式的入参进行校验
from schema import Schema, Optional, And, Or, Forbidden
入参的数据为:
request_data = {
"appId": "sxxxxxx",
"HTBH": "C00xxxxxxx",
"GMFXX": [
{
"XM": "宋X",
"SFZJZL_DM": "XXX",
"SFZJHM": 61xxxxxxxxxxxxxxxxx,
"JTCYXX": [
{
"GX": "1",
"XM": "李XX",
"SFZJZL_DM": "2xx",
"SFZJHM": "411XXXXXXXXXXxX"
}
]
}
],
"MFXX": [
{
"XM": "李XX",
"SFZJZL_DM": "XX",
"SFZJHM": "411xxxxxxxxxxxxxxx"
}
]
}
try:
model_data = Schema({
"appId": str,
Forbidden("appKey"): str,
"HTBH": str,
"GMFXX": [
{
"XM": str,
"SFZJZL_DM": str,
"SFZJHM": Or(str,int),
Optional("JTCYXX"): list,
}
],
"MFXX": [
{
"XM": str,
"SFZJZL_DM": str,
"SFZJHM": And(str,lambda x: len(x) == 18),
}
]
})
model_data.validate(req_data)
print("验证成功")
except Exception as e:
print(e)