Cerberusを使用して、ルールに渡されたいくつかのパラメーターに基づいてデータ (CSV データ) を検証するカスタム ルールを定義しました。私が尋ねた別の質問の回答からコピーした以下のルールの例を参照してください。
class MyValidator(Validator):
def _validate_custom_parameter_rule(self, rule_parameters, field, value):
""" Test if a field value is set depending on `col_name` field value.
"""
# Validate based on the rule parameters
...
v = MyValidator()
document = {"col1": "a", "col2": ""}
schema = {
"field1": {"required": False},
"field2": {"required": True,
"custom_parameter_rule": {"x": 1},
"custom_parameter_rule": {"y": 2}"
}, # Note that `custom_parameter_rule` is repeated which won't work
}
上記のフィールド 2 などの 1 つのフィールドで、ルールを複数回使用できますが、パラメータは異なります。したがって、上記の例では、フィールド 1 はフィールド 2 に依存し、フィールド 1 はフィールド 3 に依存する可能性があります。つまり、このルールを 2 回パス/実行する必要があります。
問題は、ルールが一意である必要があることを意味するarules_set
のみを取ることです。dict
問題は、どうすれば同じルールを複数回パスできるかということです。
ドキュメントの状態に注意してください。A validation schema is a mapping, usually a dict.
疑問に思っています。リストにすることができますか?はいの場合、ルールをリストとして渡すにはどうすればよいですか?