使用自定义规则,这很简单:
>>> from cerberus import Validator>>> class MyValidator(Validator): def _validate_match_length(self, other, field, value): if other not in self.document: return False if len(value) != len(self.document[other]): self._error(field, "Length doesn't match field %s's length." % other)>>> schema = {'a': {'type': 'list', 'required': True}, 'b': {'type': 'list', 'required': True, 'match_length': 'a'}}>>> validator = MyValidator(schema)>>> document = {'a': [1, 2, 3], 'b': [4, 5, 6]}>>> validator(document)True>>> document = {'a': [1, 2, 3], 'b': [7, 8]}>>> validator(document)False


