在某些情况下,您可能需要转换数据类型(如Pydantic模型),将其转换为与JSON兼容的数据结构(如dict,list等)。
在巴楚等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、网站制作 网站设计制作按需制作,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,外贸网站建设,巴楚网站建设费用合理。
例如,如果您需要将其存储在数据库中。
为此,FastAPI提供了一个jsonable_encoder()函数。
假设您有一个fake_db仅接收 JSON 兼容数据的数据库。
例如,它不接收datetime对象,因为这些对象与 JSON 不兼容。
因此,必须将datetime对象转换为str包含ISO 格式数据的对象。
同样,该数据库不会接收 Pydantic 模型(具有属性的对象),只会接收dict.
你可以用jsonable_encoder它。
它接收一个对象,如 Pydantic 模型,并返回一个 JSON 兼容版本:
from datetime import datetime
from typing import Optional
from fastapi import FastAPI
from fastapi.encoders import jsonable_encoder
from pydantic import BaseModel
fake_db = {}
class Item(BaseModel):
title: str
timestamp: datetime
description: Optional[str] = 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 模型转换为一个字典,并将这个datetime转换为一个字符串。
调用它的结果是可以用 Python 标准编码的东西json.dumps()。
它不会str以 JSON 格式(作为字符串)返回包含数据的大文件。它返回一个 Python 标准数据结构(例如 a dict),其值和子值都与 JSON 兼容。
FastAPI内部实际上使用jsonable_encoder来转换数据。但它在许多其他场景中很有用。
文章标题:创新互联FastAPI教程:FastAPI教程JSON兼容编码器
文章出自:http://www.mswzjz.cn/qtweb/news25/527675.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能