jsonschema Draft7 python中的多个自定义类型

问题描述 投票:1回答:1

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

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

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)

如何向同一验证器对象添加另一种不同的类型?

python jsonschema json-schema-validator
1个回答
0
投票

玩了几个变化后,我得到了这个工作。如果这是最好的方式,我不是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)
© www.soinside.com 2019 - 2024. All rights reserved.