Получить список всех свойств из схемы (разрешение ссылок)

Рассмотрим "сложную" схему, которая использует ссылки из других файлов, как показано ниже. Есть ли простой способ получить список всех свойств, определенных в схеме, возможно, используя некоторые механизмы, уже в python-jsonschema? Я думаю, что мне нужны свойства только на верхнем уровне, но обобщенный подход был бы великолепен.

Существует множество приложений, для которых я нуждаюсь в этом, но в основном мне нужно иметь возможность выполнять различные операции только с теми "свойствами" объектов, которые соответствуют схеме, которые определены в схеме (так что я не применяю эти операции к любым дополнительные свойства, не определенные в схеме). Например, допустим, я хочу напечатать значение каждого свойства, которое имеет объект, которое определено в схеме. Для этого мне нужен список свойств, которые определяет схема. Другим примером может быть сравнение двух объектов только на основе свойств, определенных схемой.

{
    "$schema": "http://json-schema.org/schema#",

    "allOf": [
        {
            "$ref": "file:/some/file.json"
        }
    ],

    "properties": {
        "a": {
            "type": "string"
        }
    }
}

Пример приложения:

# Load an object that has attributes conforming to the schema in `schema`
obj = Schema_Conforming_Object(schema)

# Get a list of all properties defined in the schema
#    This is what I'm not sure how to do nicely
props = properties_of_schema(schema)

for pr in props:
    if pr in obj:
        print(obj[pr])

0 ответов

Другие вопросы по тегам