我对 Python 和 Cerberus 还很陌生。我有一个要求,我需要验证任何空字符串或重复项的列表。以下是我所做的:
import cerberus
myschema = {'uid': {'type': 'list', 'schema': {'type': 'string', 'required' : True}}}
cerberus.rules_set_registry.add('myschema', myschema)
newval = Validator(myschema)
test = {'uid' : {'10000', '10001', '10002', '10003', '10004', '10005'}}
newval.validate(test)
由于某种原因,输出始终为“假”。
或者,我尝试了“oneof”规则并提出以下内容:
from cerberus import Validator
document = {'column_name' : ['BLAH', 'SEX', 'DOMAIN', 'DOMAIN']}
schema = {'column_name' : {'oneof' : [{'type': 'list', 'contains' : ['DOMAIN']}]} }
v = Validator(schema)
v.validate(document, schema)
以上总是返回True。我希望'oneof'可以验证重复项,而上述方法是正确的。如果我错了,这里有人可以纠正我。!
在此先感谢,
尼克斯