Как лучше всего отправлять объекты модели Pydantic с помощью запросов на размещение?Python

Программы на Python
Anonymous
Как лучше всего отправлять объекты модели Pydantic с помощью запросов на размещение?

Сообщение Anonymous »

Я новичок в Pydantic. Я заметил, как он часто используется для проверки входных данных в FastAPI.
У меня есть проект, в котором мне нужно отправить что-то на конечную точку API другого приложения, и я подумал, что попробую структурировать свои данные через класс модели, который наследуется от BaseModel Pydantic.
Я пробую что-то вроде этого (MWE):

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

from uuid import UUID

import requests
from pydantic import BaseModel

class Item(BaseModel):
id: UUID
content: str

item = Item(id=UUID(int=1), content="Something")
Теперь, если я попробую разместить объект следующим образом:

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

requests.put("http://localhost", json=item)
он ​​жалуется на ошибку TypeError, говорящую, что «Объект типа Item не является сериализуемым в формате JSON». (Для этой демонстрации не имеет значения, что никто не прослушивает локальный хост.) Хорошо, это достаточно легко обойти:

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

requests.put("http://localhost", data=item.model_dump_json())
Оказывается, мне нужно поместить список Item и тогда было бы удобно сделать что-то вроде этого, чего я не могу из-за ошибки в первом примере :

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

requests.put("http://localhost", json=[item, item])
Это становится несколько более сложным при сериализации отдельных элементов.
Это заставляет меня задуматься: так ли я вообще стоит это делать? Вероятно, нет, как это должно быть сделано?
Разве это вообще неправильный выбор – привлекать сюда Pydantic?

Подробнее здесь: https://stackoverflow.com/questions/787 ... t-requests

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