python高级用法之pydantic

embedded/2025/2/15 11:02:13/

Pydantic 是一个基于 Python 类型提示的数据验证库。它利用 Python 的类型注解来定义数据模型,并自动进行类型检查、数据验证和错误处理。它被一些顶级的Python模块所采用,其中特别包括Hugging Face、FastAPI和Langchain。

优势:

  • IDE 类型提示:通过数据建模,可以获得更好的IDE对类型提示和自动补全的支持。
  • 数据验证:通过使用Pydantic验证数据,当创建对象时,可以确保数据的绝对正确性,从而避免了可能的错误和后续的失败。
  • JSON序列化:如果你需要将数据转换为通用格式,如JSON,它还提供了一种简单的方法来序列化你的对象。

基本使用

from pydantic import BaseModel, Field
from typing import Optional# 定义模型
class User(BaseModel):username: stremail: strage: Optional[int] = Field(None, ge=18)  # 可选字段,且年龄必须大于等于18# 通过关键字参数创建实例
# user = User(username="zhangsan", email="1111@qq.com", age=18)
# 通过解包字典创建实例
user_data = {"username": "alice","email": "alice@example.com","age": 25
}user = User(**user_data)
print(user.username)  # 输出: alice
# 转换为字典
print(user.model_dump())    # 输出: {'username': 'alice', 'email': 'alice@example.com', 'age': 25}
# 转换为JSON
print(user.model_dump_json()) # {"username":"alice","email":"alice@example.com","age":25}


http://www.ppmy.cn/embedded/162389.html

相关文章

uniapp商场之订单模块【订单列表】

文章目录 前言一、准备静态结构(分包)二、Tabs滑动切换1.Tabs文字渲染2.点文字高亮切换3.swiper滑动切换三、Tabs页面跳转高亮四、订单列表渲染1.封装列表组件2.订单状态父传子3.封装请求API4.准备请求参数5.初始化调用6.页面渲染五、订单支付1.页面条件渲染2.事件绑定前言 …

QEventLoop 的使用方法及特性详解

1. QEventLoop 的基本概念 QEventLoop 是 Qt 框架中用于管理事件循环的核心类。事件循环(Event Loop)是 GUI 应用程序的“心脏”,负责接收和分发事件(如用户输入、定时器事件、网络事件等)。每个 Qt 应用程序至少有一…

基于 MATLAB 的粒子滤波算法实现示例,用于处理手机传感器数据并估计电梯运行参数。

本研究提出一种基于智能手机传感器的电梯运行参数检测方法,通过调用手机内置加速度计等传感器获取电梯加速度、速度及运行距离等数据,并利用粒子滤波算法(PF)抑制传感器噪声。实验结果表明,经粒子滤波处理后,手机测量结果与专业检测设备数据对比误差显著降低,测量准确度…

3.3 学习UVM中的uvm_driver 类分为几步?

文章目录 前言1. 定义2. 核心功能3. 适用场景4. 使用方法5. 完整代码示例5.1 事务类定义5.2 Driver 类定义5.3 Sequencer 类定义5.4 测试平台 6. 代码说明7. 总结 前言 以下是关于 UVM 中 uvm_driver 的详细解释、核心功能、适用场景、使用方法以及一个完整的代码示例&#xff…

mysql的主从配置

#mysql数据库 #主从 MySQL数据库主从配置 1.MySQL主从介绍 MySQL 主从又叫做 Replication、AB 复制。简单讲就是 A 和 B 两台机器做主 从后,在 A 上写数据,另外一台 B 也会跟着写数据,两者数据实时同步的。 MySQL 主从是基于 binlog 的&…

【Elasticsearch】runtime_mappings搜索请求中定义运行时字段

在 Elasticsearch 中,在搜索请求中定义运行时字段(Runtime Fields)是一种强大的功能,允许用户在查询时动态添加和计算字段,而无需预先在索引映射中定义这些字段。这种方式提供了极大的灵活性,尤其是在处理动…

Docker 常用命令基础详解(一)

一、Docker 初相识 在当今数字化时代,软件开发和部署的效率与灵活性成为了关键因素。Docker,作为一款开源的应用容器引擎,犹如一颗璀璨的明星,照亮了软件开发与部署的道路,为开发者们带来了前所未有的便利。它就像是一…

万字长文破解 AI 图片生成算法-Stable diffusion

想象一下:你闭上眼睛,脑海中构思一个场景,用简短的语言描述出来,然后“啪”的一声,一张栩栩如生的图片就出现在你眼前。这不再是科幻小说里才有的情节,而是StableDiffusion——一种前沿的AI图片生成算法——…