Skip to main content

jsonschema

Используется для валидации json схемы. По умолчанию дополнительно указанные ключи (не существующие в схеме, но присутствующие в документе) не проверяются.

Исключения

jsonschema.exceptions.ValidationError - если документ не соответствует структуре

jsonschema.exceptions.SchemaError - если сама схема некорректна

Пример схемы:

schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "number"},
    },
    "required": ["name"],
}

Данная схема определяет json объект с 2 свойствами: name и age. Обязательное свойство name.

Ключевые слова

Для некоторых типов используются дополнительные ключевые слова.

Ключевое словоОписание
type

Тип. Для корня часто object.

string - строка

number - число

object - объект

array - список

additionalPropertiesЕсли True, то дополнительно указанные ключи приводят к исключению.












Дополнительные ключевые слова для типов.

 Тип array

Ключевое словоОписание
items

Тип элементов списка.

Пример:

"scores": {
            "type": "array",
            "items": {"type": "number"},
        }
minItemsМинимальное количество элементов


Тип object

Ключевое словоОписание
required

Список обязательных ключей.

Пример:

"required": ["name"]
properties

Определяет ключи объекта и их тип.

Пример:

"properties": {
        "name": {"type": "string"}
    },