Проверьте значение даты и времени с помощью Python jsonschema - PullRequest
0 голосов
/ 06 сентября 2018

Я использую jsonschema для проверки моего словаря Python. Я пытаюсь проверить значение datetime, но не знаю, как это сделать.

Вот что у меня есть, что приводит к ошибке, потому что jsonschema не имеет типа datetime:

order = {
    "name": "shirt",
    "order_datetime": datetime.datetime(2018, 1, 18)
}

schema = {
    "title": "Order",
    "type": "object",
    "required": ["name", "order_datetime"],
    "properties": {
        "name": {
            "type": "string"
        },
        "order_datetime": {
            "type": "datetime"
        }
    }
}

from jsonschema import validate
validate(order, schema)

Ошибка jsonschema.exceptions.SchemaError: 'datetime' is not valid under any of the given schemas. Как я могу проверить это правильно?

1 Ответ

0 голосов
/ 06 сентября 2018

Вы можете использовать встроенный __str__ метод datetime.datetime, это преобразует его в строку, которая должна работать с JSON:

dt_string = str(datetime.datetime(2018, 1, 18))

order = {
    "name": "shirt",
    "order_datetime": dt_string
}

schema = {
    "title": "Order",
    "type": "object",
    "required": ["name", "order_datetime"],
    "properties": {
        "name": {
            "type": "string"
        },
        "order_datetime": {
            "type": "datetime"
        }
    }
}

from jsonschema import validate
validate(order, schema)
...