[英]Python jsonschema Validate Timezone
只是想知道是否有办法扩展传递给 jsonschema 验证器的 FormatChecker? 我似乎在文档中找不到任何东西。 基本上,我正在尝试检查字符串值是否是有效的时区。 我在时区方面使用 pytz。 但是,我需要检查提供的 json 字符串属性是否包含在该列表中。 我能想到的唯一其他方法是将列表提取为架构中的枚举字段。 但是,这是一个巨大的列表,而且似乎是一种非常笨拙的方式。 理想情况下,我想要这样的东西:
from pytz import common_timezones
from jsonschema import validate, FormatChecker
timezone_checker = FormatChecker(formats=["timezone"])
timezone_checker.extend(check_timezone)
instance = { "timezone": "Australia/Sydney" }
schema = {
"properties": {
"timezone": {"type": "string", "format": "timezone"}
}
}
validate(instance=instance, schema=schema, format_checker=timezone_checker)
...
def check_timezone(p):
if not isinstance(p, str):
return False
return p in common_timezones
提前致谢。
执行此操作的 function 称为FormatChecker.checks
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.