我正在尝试向验证器添加几种自定义类型

目前,我有一个验证日期类型。我想添加另一个以验证正整数

from datetime import date

date_checker = Draft7Validator.TYPE_CHECKER.redefine("date", lambda _, instance: isinstance(instance, date))
custom_validator = validators.extend(Draft7Validator, type_checker=date_checker)
validator = custom_validator(schema={"type": "date"})
validator.validate(config, schema)


如何将另一个不同的类型添加到同一验证器对象?

最佳答案

在玩了几个变体之后,我开始工作了。我不是100%确定这是否是最好的方法....但是它有效

date_checker = Draft7Validator.TYPE_CHECKER.redefine_many({
    "date": lambda _, instance: isinstance(instance, date),
    "pos_int": lambda _, instance: isinstance(instance, int) and instance >= 0
})

custom_validator = validators.extend(Draft7Validator, type_checker=date_checker)
validator = custom_validator(schema)
validator.validate(config)

关于python - jsonschema Draft7 python中的多个自定义类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55026142/

10-13 05:13