0

私は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)

何らかの理由で、出力は常に「False」です。
あるいは、「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」が重複を検証できることを望んでいましたが、前述の方法が正しい方法です。私が間違っている場合は、誰でも訂正してください。
前もってありがとう、
ニックス

4

2 に答える 2