๐ป ๐ ๐ข¶
๐ค ๐ผ ๐โ ๐ 5๏ธโฃ๐ ๐ช ๐ ๐ฝ ๐ (๐ Pydantic ๐ท) ๐ณ ๐ โฎ๏ธ ๐ป (๐ dict
, list
, โ๏ธ).
๐ผ, ๐ฅ ๐ ๐ช ๐ช โซ๏ธ ๐ฝ.
๐, FastAPI ๐ jsonable_encoder()
๐ข.
โ๏ธ jsonable_encoder
¶
โก๏ธ ๐ ๐ ๐ โ๏ธ ๐ฝ fake_db
๐ ๐ด ๐จ ๐ป ๐ ๐ฝ.
๐ผ, โซ๏ธ ๐ซ ๐จ datetime
๐, ๐ ๐ซ ๐ โฎ๏ธ ๐ป.
, datetime
๐ ๐ โ๏ธ ๐ str
โ ๐ฝ ๐พ ๐.
๐ ๐, ๐ ๐ฝ ๐ซ๐ ๐จ Pydantic ๐ท (๐ โฎ๏ธ ๐ข), ๐ด dict
.
๐ ๐ช โ๏ธ jsonable_encoder
๐.
โซ๏ธ ๐จ ๐, ๐ Pydantic ๐ท, & ๐จ ๐ป ๐ โฌ:
from datetime import datetime
from typing import Union
from fastapi import FastAPI
from fastapi.encoders import jsonable_encoder
from pydantic import BaseModel
fake_db = {}
class Item(BaseModel):
title: str
timestamp: datetime
description: Union[str, None] = None
app = FastAPI()
@app.put("/items/{id}")
def update_item(id: str, item: Item):
json_compatible_item_data = jsonable_encoder(item)
fake_db[id] = json_compatible_item_data
from datetime import datetime
from fastapi import FastAPI
from fastapi.encoders import jsonable_encoder
from pydantic import BaseModel
fake_db = {}
class Item(BaseModel):
title: str
timestamp: datetime
description: str | None = None
app = FastAPI()
@app.put("/items/{id}")
def update_item(id: str, item: Item):
json_compatible_item_data = jsonable_encoder(item)
fake_db[id] = json_compatible_item_data
๐ ๐ผ, โซ๏ธ ๐ ๐ Pydantic ๐ท dict
, & datetime
str
.
๐ ๐ค โซ๏ธ ๐ณ ๐ ๐ช ๐ โฎ๏ธ ๐ ๐ฉ json.dumps()
.
โซ๏ธ ๐ซ ๐จ โญ str
โ ๐ฝ ๐ป ๐ (๐ป). โซ๏ธ ๐จ ๐ ๐ฉ ๐ฝ ๐ (โ
dict
) โฎ๏ธ ๐ฒ & ๐ง-๐ฒ ๐ ๐ ๐ โฎ๏ธ ๐ป.
Note
jsonable_encoder
๐ค โ๏ธ FastAPI ๐ ๐ ๐ฝ. โ๏ธ โซ๏ธ โ ๐ ๐ ๐.