簡體   English   中英

Python jsonschema 驗證時區

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM