相关疑难解决方法(0)

Pydantic 模型:调用 .dict() 时将 UUID 转换为字符串

感谢您的时间。

.dict()当调用使用 pymongo 保存到 monogdb时,我试图将 UUID 字段转换为字符串。我尝试过,.json()但似乎 mongodb 不喜欢它 TypeError: document must be an instance of dict, bson.son.SON, bson.raw_bson.RawBSONDocument, or a type that inherits from collections.MutableMapping

这是我到目前为止所做的:

from uuid import uuid4
from datetime import datetime
from pydantic import BaseModel, Field, UUID4

class TestModel(BaseModel):
    id: UUID4 = Field(default_factory=uuid4)
    title: str = Field(default="")
    ts: datetime = Field(default_factory=datetime.utcnow)

record = TestModel()
record.title = "Hello!"
print(record.json())
# {"id": "4d52517a-88a0-43f8-9d9a-df9d7b6ddf01", "title": "Hello!", "ts": "2021-08-18T03:00:54.913345"}
print(record.dict())
# {'id': UUID('4d52517a-88a0-43f8-9d9a-df9d7b6ddf01'), 'title': 'Hello!', 'ts': datetime.datetime(2021, …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pydantic

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

pydantic ×1

python ×1

python-3.x ×1