Python jsonschema验证时区

Python jsonschema验证时区,python,jsonschema,pytz,Python,Jsonschema,Pytz,只是想知道是否有办法扩展传递给jsonschema验证器的FormatChecker?我似乎在文档中找不到任何东西。 基本上,我试图检查字符串值是否为有效时区。我用pytz来表示时区。但是,我需要检查提供的json字符串属性是否包含在该列表中。 我能想到的唯一其他方法是将列表提取为模式中的枚举字段。但是,这是一个巨大的列表,而且似乎是一个相当笨拙的方法。理想情况下,我想要这样的东西: from pytz import common_timezones from jsonschema import

只是想知道是否有办法扩展传递给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

提前感谢。

调用了执行此操作的函数