私はケルベロスをPythonで使用していくつかのデータを検証しようとしています。
私は、「ブール」タイプのため、バリデータは常にこのよう、Trueを返していることが分かった:ケルベロスをPythonで使用してブール値を検証する
import cerberus
bool_schema = {'name': {'type': 'boolean', 'required': True}}
cerberus.schema_registry.add('bool_schema', bool_schema)
v = cerberus.Validator({'name': {'schema': 'bool_schema'}})
test1 = {'name': 'a'}
test2 = {'name': 0}
print(v.validate(test1))
print(v.validate(test2))
上記のコードは2 Truesを印刷します。
実際には、値がTrueまたはFalse(Pythonのbool型)であるかどうかを検証する必要があります。他の値はバリデーターを渡すべきではありません。
あなたがcerberus' 'のどのバージョンを使用していますか?上記のコードはエラーを引き起こします( "raise SchemaError(self.schema_validator.errors) cerberus.schema.SchemaError:{'name':[{'スキーマ':[{'anyof':['定義が検証されません'、{ 'anyof definition 1':['ルールセット定義booleanが見つかりません'、 'anyof definition 0':['スキーマ定義booleanが見つかりません']}]]]]] '' cerverus' 1.0.1 – DeepSpace
'cerberus'を' pip'にインストールし、 'cerberus .__ version__'が正確にバージョン1.0.1を示しています – LuCima
申し訳ありませんが、私は質問に間違った記述をしました。Validatorのスキーマ名は' 'bool_schema'''は '' schema'''ではありません。 – LuCima