我想驗證 a dict,其中字段可能包含 anint或 a List[int]。此外,一切都int必須是積極的。我需要一些幫助來設(shè)置架構(gòu)。下面的架構(gòu)無法正常工作。他們不檢查負數(shù)。也就是說,負數(shù)正在通過驗證,這是不正確的。import cerberusv = cerberus.Validator()schema1 = { "int_or_list_of_int": { "type": ["integer", "list"], "schema": {"type": "integer", "min": 0}, },}schema2 = { "int_or_list_of_int": { "type": ["integer", "list"], "valuesrules": {"type": "integer", "min": 0}, },}num1 = {"int_or_list_of_int": 5}num2 = {"int_or_list_of_int": [5, 10]}num3 = {"int_or_list_of_int": -5}num4 = {"int_or_list_of_int": [5, -10]}# schema 1assert v.validate(num1, schema1)assert v.validate(num2, schema1)assert not v.validate(num3, schema1) # Evaluates to Trueassert not v.validate(num3, schema1) # Evaluates to True# schema 2assert v.validate(num1, schema2)assert v.validate(num2, schema2)to Trueassert not v.validate(num3, schema2) # Evaluates to Trueassert not v.validate(num4, schema2) # Evaluates to True
1 回答

素胚勾勒不出你
TA貢獻1827條經(jīng)驗 獲得超9個贊
首先,schemaforint_or_list_of_int應(yīng)該在int_or_list_of_intdict里面。其次,min應(yīng)該適用于整數(shù)(內(nèi)部int_or_list_of_int)和列表(內(nèi)部schema)。
schema = {
"int_or_list_of_int": {
"type": ["integer", "list"],
"min": 0,
"schema": {"type": "integer", "min": 0}
}
}
添加回答
舉報
0/150
提交
取消