Как стать автором
Обновить

Комментарии 2

Посмотрите на Pydantic. Там можно создать модель со вложенной структурой и вытащить только то, что надо.

from pydantic import BaseModel


class Person(BaseModel):
    name: str


class MyData(BaseModel):
    person: Person


if __name__ == '__main__':
    print(
        MyData.parse_obj(
            {
                "person": {"name": "John", "other": "gray"},
                "other": "gray"
            }
        )
    )

# person=Person(name='John')

Код очень сложный, мне не хватает мотивации его понять. Сдишком большая вложеннось.

Вот здесь явно присутствует дупликация. Можно упростить.

elif prop_type == 'url':
    extracted_data[prop_name] = prop_values.get(prop_type)
    property_types[prop_name] = 'string'
elif prop_type == 'number':
    extracted_data[prop_name] = prop_values.get(prop_type)
    property_types[prop_name] = 'int64'
elif prop_type == 'checkbox':
    extracted_data[prop_name] = prop_values.get(prop_type)
    property_types[prop_name] = 'bool'
    "checkbox": "bool",
}

if prop_type in props_mapping:
    property_types[prop_name] = props[prop_type]
    property_types[prop_name] = props_mapping[prop_type]

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации