Получить список всех свойств из схемы (разрешение ссылок)
Рассмотрим "сложную" схему, которая использует ссылки из других файлов, как показано ниже. Есть ли простой способ получить список всех свойств, определенных в схеме, возможно, используя некоторые механизмы, уже в 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])