@domanskiy

Как сделать валидацию в использование Pydantic с заменой значения из словаря?

Делаю небольшой парсер.
Есть yml (yml_catalog из 1С для яндекса с описанием продуктов)
Продукты из yml парсятся и по API загружаются в woocommerce. С этим вопросов нет.
Но есть момент. В yml есть key": "производитель".
В woocommerce есть key": "производитель", но там список другой.
Сейчас я просто сравнением значение из yml меняю на значение из woocommerce.
Вопрос, можно ли это (замена значения) сделать прогоняя json через pydantic???
  • Вопрос задан
  • 471 просмотр
Решения вопроса 1
с живым примером было бы проще, но так можно через @validator обрабатывать значения
Пример реализации, само собой можно более сложную обработку делать
from pydantic import BaseModel, validator

keys = {
    '1': 'one'
}


class User(BaseModel):
    name: str = ''
    key: str = ''

    @validator('key')
    def update_key(cls, value):
        return keys.get(value, value)


user_1 = User.parse_obj({'name': 'Test User', 'key': '1'})
user_2 = User.parse_obj({'name': 'Test User', 'key': '2'})

print(user_1)
print(user_2)

name='Test User' key='one'
name='Test User' key='2'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы