from typing import Any
from bson import ObjectId
from pydantic_core import core_schema
class PyObjectId(ObjectId):
"""To create a pydantic Object that validates bson ObjectID"""
@classmethod
def __get_pydantic_core_schema__(cls, _source_type: Any, _handler: Any) -> core_schema.CoreSchema:
return core_schema.json_or_python_schema(
json_schema=core_schema.str_schema(),
python_schema=core_schema.union_schema(
[
core_schema.is_instance_schema(ObjectId),
core_schema.chain_schema(
[
core_schema.str_schema(),
core_schema.no_info_plain_validator_function(cls.validate),
]
),
]
),
serialization=core_schema.plain_serializer_function_ser_schema(lambda x: str(x)), # noqa W0108
)
@classmethod
def validate(cls, value) -> ObjectId:
if not ObjectId.is_valid(value):
raise ValueError("Invalid ObjectId")
return ObjectId(value)
class GoalRecordStored(BaseModel):
"""Goal Record Model."""
player_id: PyObjectId = Field(..., validation_alias="Player ID")
date: datetime = Field(validation_alias="Date")
Привет
Я пытаюсь отправить player_id как ObjectId, но не могу этого сделать, и он сохраняется в MongoDB как строку, а не ObjectId. Как я могу это изменить?
Я пробовал много изменений в классе, но это не помогло. Я пытался передать player_id разными способами, но он всегда сохранялся в виде строки, а не так, как мне хотелось.
@classmethod def validate(cls, value) -> ObjectId: if not ObjectId.is_valid(value): raise ValueError("Invalid ObjectId") return ObjectId(value)
class GoalRecordStored(BaseModel): """Goal Record Model."""
player_id: PyObjectId = Field(..., validation_alias="Player ID") date: datetime = Field(validation_alias="Date") [/code] Привет Я пытаюсь отправить player_id как ObjectId, но не могу этого сделать, и он сохраняется в MongoDB как строку, а не ObjectId. Как я могу это изменить? Я пробовал много изменений в классе, но это не помогло. Я пытался передать player_id разными способами, но он всегда сохранялся в виде строки, а не так, как мне хотелось.
Описание проблемы:
Я пытаюсь очистить веб-сайт используя запросы библиотека вместе с BeautifulSoup. Однако при отправке запроса на веб-сайт я сталкиваюсь со следующей ошибкой проверки сертификата SSL:
requests.exceptions.SSLError:...
После запроса к базе данных, запрошенного через POST, я отправляю ответ в кодировке JSON обратно вызывающему абоненту (браузеру или приложению).
php:
$result = Database::query($str_query);
Я пытаюсь ограничить одно поле в классе перечислением. Однако когда я пытаюсь получить словарь из класса, он не преобразуется в строку. Вместо этого он сохраняет перечисление. Я проверил документацию pydantic, но не нашел ничего, что имело бы...
Я пытаюсь вставить данные из фрейма данных в SQL Server, используя приведенный ниже параметризованный запрос, в котором некоторые значения имеют значение NoneType, что приводит к сбою запроса с ошибкой: