Десериализовать псевдоним JSON с помощью PydanticPython

Программы на Python
Ответить
Anonymous
 Десериализовать псевдоним JSON с помощью Pydantic

Сообщение Anonymous »

Я хочу использовать псевдонимы Pydantic (версия: 2.6.1), чтобы можно было использовать ключевое слово Python («from») при создании JSON. Я думал, это сработает:

Код: Выделить всё

from pydantic import BaseModel, Field

class TestModel(BaseModel):
from_str: str = Field(serialization_alias="from")

test_obj = TestModel(from_str="John")
print("TestModel: ", test_obj)

test_json = test_obj.model_dump(by_alias=True)
print("Test JSON:", test_json)

deserialized_obj = TestModel.model_validate(test_json)
print("Deserialized: ", deserialized_obj)
Это правильно загружается в словарь с правильным псевдонимом («from»). Но при вызове model_validate выдает ошибку:

Код: Выделить всё

pydantic_core._pydantic_core.ValidationError: 1 validation error for TestModel
from_str
Field required [type=missing, input_value={'from': 'John'}, input_type=dict]
Я думал, что при обратном преобразовании в TestModel он также будет использовать псевдоним сериализации, но это не так. Мне это нужно, чтобы иметь возможность путешествовать туда и обратно. Любая помощь приветствуется.
Я также пробовал возиться с validation_alias, но потом у меня возникли проблемы при вызове model_dump.

Подробнее здесь: https://stackoverflow.com/questions/780 ... g-pydantic
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»