繁体   English   中英

使用 Pydantic 和 FastAPI 接受不同的数据类型

[英]Accepting different datatypes using Pydantic and FastAPI

我有一个用例,我使用 pydantic 模型从前端应用程序到 FastAPI backedn 接受不同数据类型的数据 - 即dict, boolean, string, int, list

我的问题是我应该如何设计我的 pydantic 模型,以便它可以接受任何数据类型,以后可以用于操作数据和创建 API?

from pydantic import BaseModel

class Pino(BaseModel):
    asset:str (The data is coming from the front end ((dict,boolean,string,int,list))  )

@app.post("/api/setAsset")
async def pino_kafka(item: Pino):
    messages = {
        "asset": item.asset
}

定义自定义数据类型:

from typing import Optional, Union
my_datatype = Union[dict,boolean,string,int,list]

在 python 3.9 以后,你不再需要 Union 了:

my_datatype = dict | boolean | string | int | list

然后在您的模型中使用它:

class Pino(BaseModel):
    asset: my_datatype

如果您真的想要“任何”数据类型,只需使用“任何”:

from typing import Any
class Pino(BaseModel):
    asset: Any

无论如何,我几乎找不到一个用例,使用 pydantic 的重点是强加数据类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM