python库pydantic怎么用


这篇文章主要介绍了python库pydantic怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。pydantic 库是 python 中用于数据接口定义检查与设置管理的库。pydantic 在运行时强制执行类型提示,并在数据无效时提供友好的错误。它具有如下优点:与 IDE/linter 完美搭配,不需要学习新的模式,只是使用类型注解定义类的实例多用途,BaseSettings 既可以验证请求数据,也可以从环境变量中读取系统设置快速可免费云主机域名以验证复杂结构可扩展,可以使用validator装饰器装饰的模型上的方法来扩展验证数据类集成,除了BaseModel,pydantic还提供了一个dataclass装饰器,它创建带有输入数据解析和验证的普通 Python 数据类。要测试 pydantic 是否已编译,请运行:支持使用dotenv文件获取配置,需要安装 python-dotenvpydantic中定义对象都是通过模型的,你可以认为模型就是类型语言中的类型。上面的例子,定义了一个User模型,继承自BaseModel,有2个字段,id是一个整数并且是必需的,name是一个带有默认值的字符串并且不是必需的实例化使用:实例化将执行所有解析和验证,如果有错误则会触发 ValidationError 报错。模型具有以下属性:dict() 模型字段和值的字典json() JSON 字符串表示dict()copy() 模型的副本(默认为浅表副本)parse_obj() 使用dict解析数据parse_raw 将str或bytes并将其解析为json,然后将结果传递给parse_objparse_file 文件路径,读取文件并将内容传递给parse_raw。如果content_type省略,则从文件的扩展名推断from_orm() 从ORM 对象创建模型schema() 返回模式的字典schema_json() 返回该字典的 JSON 字符串表示construct() 允许在没有验证的情况下创建模型__fields_set__ 初始化模型实例时设置的字段名称集__fields__ 模型字段的字典__config__ 模型的配置类可以使用模型本身作为注释中的类型来定义更复杂的数据结构。使用 typing.TypeVar 的实例作为参数,传递给 typing.Generic,然后在继承了pydantic.generics.GenericModel 的模型中使用:4、create_model 动态模型在某些情况下,直到运行时才知道模型的结构。为此 pydantic 提供了create_model允许动态创建模型的方法。None,type(None)或Literal[None]只允许None值bool 布尔类型int 整数类型float 浮点数类型str 字符串类型bytes 字节类型list 允许list,tuple,set,frozenset,deque, 或生成器并转换为列表tuple 允许list,tuple,set,frozenset,deque, 或生成器并转换为元组dict 字典类型set 允许list,tuple,set,frozenset,deque, 或生成器和转换为集合;frozenset 允许list,tuple,set,frozenset,deque, 或生成器和强制转换为冻结集deque 允许list,tuple,set,frozenset,deque, 或生成器和强制转换为双端队列datetime 的date,datetime,time,timedelta 等日期类型typing 中的 Deque, Dict, FrozenSet, List, Optional, Sequence, Set, Tuple, Union,Callable,Pattern等类型FilePath,文件路径DirectoryPath 目录路径EmailStr 电子邮件地址NameEmail 有效的电子邮件地址或格式PyObject 需要一个字符串并加载可在该虚线路径中导入的 python 对象;Color 颜色类型AnyUrl 任意网址SecretStr、SecretBytes 敏感信息,将被格式化为’**********’或”Json 类型PaymentCardNumber 支付卡类型约束类型,可以使用con*类型函数限制许多常见类型的值conlistitem_type: Type[T]: 列表项的类型min_items: int = None: 列表中的最小项目数max_items: int = None: 列表中的最大项目数consetitem_type: Type[T]: 设置项目的类型min_items: int = None: 集合中的最小项目数max_items: int = None: 集合中的最大项目数conintstrict: bool = False: 控制类型强制gt: int = None: 强制整数大于设定值ge: int = None: 强制整数大于或等于设定值lt: int = None: 强制整数小于设定值le: int = None: 强制整数小于或等于设定值multiple_of: int = None: 强制整数为设定值的倍数confloatstrict: bool = False: 控制类型强制gt: float = None: 强制浮点数大于设定值ge: float = None: 强制 float 大于或等于设定值lt: float = None: 强制浮点数小于设定值le: float = None: 强制 float 小于或等于设定值multiple_of: float = None: 强制 float 为设定值的倍数condecimalgt: Decimal = None: 强制十进制大于设定值ge: Decimal = None: 强制十进制大于或等于设定值lt: Decimal = None: 强制十进制小于设定值le: Decimal = None: 强制十进制小于或等于设定值max_digits: int = None: 小数点内的最大位数。它不包括小数点前的零或尾随的十进制零decimal_places: int = None: 允许的最大小数位数。它不包括尾随十进制零multiple_of: Decimal = None: 强制十进制为设定值的倍数constrstrip_whitespace: bool = False: 删除前尾空格to_lower: bool = False: 将所有字符转为小写strict: bool = False: 控制类型强制min_length: int = None: 字符串的最小长度max_length: int = None: 字符串的最大长度curtail_length: int = None: 当字符串长度超过设定值时,将字符串长度缩小到设定值regex: str = None: 正则表达式来验证字符串conbytesstrip_whitespace: bool = False: 删除前尾空格to_lower: bool = False: 将所有字符转为小写min_length: int = None: 字节串的最小长度max_length: int = None: 字节串的最大长度严格类型,您可以使用StrictStr,StrictBytes,StrictInt,StrictFloat,和StrictBool类型,以防止强制兼容类型使用validator装饰器可以实现自定义验证和对象之间的复杂关系。关于验证器的一些注意事项:验证器是“类方法”,因此它们接收的第一个参数值是UserModel类,而不是UserModel第二个参数始终是要验证的字段值,可以随意命名单个验证器可以通过传递多个字段名称来应用于多个字段,也可以通过传递特殊值在所有字段上调用单个验证器’*’关键字参数pre将导致在其他验证之前调用验证器通过each_item=True将导致验证器被施加到单独的值(例如List,Dict,Set等),而不是整个对象关键字参数 always 将导致始终验证,出于性能原因,默认情况下,当未提供值时,不会为字段调用验证器。然而,在某些情况下,始终调用验证器可能很有用或需要,例如设置动态默认值。allow_reuse 可以在多个字段/模型上使用相同的验证器如果您创建一个继承自BaseSettings的模型,模型初始化程序将尝试通过从环境中读取,来确定未作为关键字参数传递的任何字段的值。(如果未设置匹配的环境变量,则仍将使用默认值。)这使得很容易:创建明确定义、类型提示的应用程序配置类自动从环境变量中读取对配置的修改在需要的地方手动覆盖初始化程序中的特定设置(例如在单元测试中)支持 Dotenv 文件设置变量,pydantic 有两种方式加载它:或者即使使用 dotenv 文件,pydantic 仍会读取环境变量,环境变量将始终优先于从 dotenv 文件加载的值。pydantic 支持设置敏感信息文件,同样有2种方式加载:或者:即使使用 secrets 目录,pydantic仍会从 dotenv 文件或环境中读取环境变量,dotenv 文件和环境变量将始终优先于从 secrets 目录加载的值。Pydantic 附带了一个 mypy 插件,向 mypy 添加了许多重要的特定于 pydantic 的功能,以提高其对代码进行类型检查的能力。例如以下脚本:在没有任何特殊配置的情况下,mypy 会捕获其中一个错误:启用插件后,它会同时捕获:要启用该插件,只需添加pydantic.mypy到mypy 配置文件中的插件列表:要更改插件设置的值,请在 mypy 配置文件中创建一个名为 的部分[pydantic-mypy],并为要覆盖的设置添加键值对:感谢你能够认真阅读完这篇文章,希望小编分享的“python库pydantic怎么用”这篇文章对大家有帮助,同时也希望大家多多支持百云主机,关注百云主机行业资讯频道,更多相关知识等着你来学习!

相关推荐: PHP中SQL修改语法和使用方法是什么

本文小编为大家详细介绍“PHP中SQL修改语法和使用方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP中SQL修改语法和使用方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 免费云主机域名 一、语法在PHP中,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/24 11:47
Next 07/24 11:48

相关推荐