この検証を受け入れ可能なものとして取得しようとして True
いますが、フィールドのいずれかが可能ですempty: True
(デフォルトではわかっています)が、空でない場合は、すべての連続した条件を適用する必要があります。
スキーマv = Validator()
schm = {'l_addrsch': {'type': 'string', 'empty': True, 'allowed': ['m', 'o', 'e', 'M', 'O', 'E'], 'dependencies': ['l_nrefaddr', 'l_refaddr']},
'l_nrefaddr': {'type': 'integer', 'empty': True, 'dependencies': ['l_addrsch', 'l_refaddr']},
'l_refaddr': {'type': 'integer', 'empty': True, 'dependencies': ['l_addrsch', 'l_nrefaddr']}}
役職val = v.validate(p, schema)
{
"l_addrsch" : "",
"l_nrefaddr" : "",
"l_refaddr" : ""
}
応答
[
{
"l_addrsch": [
"unallowed value "
],
"l_nrefaddr": [
"must be of integer type"
],
"l_refaddr": [
"must be of integer type"
]
}
]
あまり混乱していないことを願っています。
EDIT 1:正規化ルール「デフォルト」で述べたようにこれを試しました:
schema = {'l_addrsch': {'type': 'string', 'default': '', 'allowed': ['', 'm', 'o', 'e', 'M', 'O', 'E'], 'dependencies': ['l_nrefaddr', 'l_refaddr']},
'l_nrefaddr': {'type': 'integer', 'default': 0, 'dependencies': ['l_addrsch', 'l_refaddr']},
'l_refaddr': {'type': 'integer', 'default': 0, 'dependencies': ['l_addrsch', 'l_nrefaddr']}
役職:
{ "l_addrsch" : "",
"l_nrefaddr" : "",
"l_refaddr" : ""}
しかし、整数に対して機能させるためにまだ何かが欠けているようです
[
{
"l_nrefaddr": [
"must be of integer type"
],
"l_refaddr": [
"must be of integer type"
]
}
]