Python - typing - Union
#Union[int, str] 表示既可以是 int,也可以是 str
vars: Union[int, str]
# 等价于
vars: [int or str]
vars: Union[int]
# 等价于
vars: int
Python - typing 模块 —— Union_小菠萝测试笔记的博客-CSDN博客
pydantic-Field
Field 可用于提供有关字段和验证的额外信息,如设置必填项和可选,设置最大值和最小值,字符串长度等限制
关于 Field 字段参数说明
- Field(None) 是可选字段,不传的时候值默认为None
- Field(…) 是设置必填项字段
- title 自定义标题,如果没有默认就是字段属性的值
- description 定义字段描述内容
address: TronAccountAddress = Field(description="Wallet address")Option
如果一个数据类型不是必须的,可以允许用户在使用中不进行传入,则我们可以使用typing库中的Optional方法进行实现。
from typing import Optional
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: Optional[int]
需要注意的是,设置为可选之后,数据中仍然会有age字段,但是其默认值为None,即当不传入age字段时,Person仍然可以取到age,只是其值为None
p = Person(name="Tom")
print(p.json()) # {"name": "Tom", "age": None}



