当前位置: 首页 > news >正文

【Sqlalchemy Model转换成Pydantic Model示例】

【Sqlalchemy Model转换成Pydantic Model示例】

由于Sqlalchemy和Pydantic的模型字段类型可能有差异, 所以需要一个通用的装换类

def sqlalchemy_to_pydantic_v2(sqlalchemy_model, pydantic_model):"""通用函数,将 SQLAlchemy 模型实例转换为 Pydantic 模型实例:param sqlalchemy_model: SQLAlchemy 模型实例:param pydantic_model: Pydantic 模型类:return: Pydantic 模型实例"""data = {}for field_name in pydantic_model.model_fields:if hasattr(sqlalchemy_model, field_name):sqlalchemy_value = getattr(sqlalchemy_model, field_name)# 获取 Pydantic 模型字段的类型pydantic_type = pydantic_model.model_fields[field_name].annotationdata[field_name] = sqlalchemy_valueif (pydantic_type == str or pydantic_type == Optional[str]) and isinstance(sqlalchemy_value, int):data[field_name] = str(sqlalchemy_value)elif (pydantic_type == str or pydantic_type == Optional[str]) and isinstance(sqlalchemy_value, datetime):data[field_name] = sqlalchemy_value.strftime("%Y-%m-%d %H:%M:%S") if sqlalchemy_value else Noneelse:data[field_name] = sqlalchemy_valuereturn pydantic_model.model_validate(data)

相关文章:

  • 【含文档+PPT+源码】基于SSM的电影数据挖掘与分析可视化系统设计与实现
  • 嵌入式学习笔记 - 关于STM32 SPI控制器读取以及写入时,标志位TXE, RXNE的变化
  • Leetcode 3530. Maximum Profit from Valid Topological Order in DAG
  • C#实现对达索(Dassault)SolidWorks中3D图纸转化为手机可直接查看预览图纸格式
  • 扣子流程图批量导入飞书多维表格
  • springboot 框架把 resources下的zip压缩包, springboot 项目启动后解压到项目根目录工具类
  • 域对齐是什么
  • 基于STM32、HAL库的ATECC608B安全验证及加密芯片驱动程序设计
  • Kotlin-高阶函数,Lambda表达式,内联函数
  • Spring Boot × K8s 监控实战-集成 Prometheus 与 Grafana
  • 在开发板上如何处理curl: (60) SSL certificate problem
  • openssl_error_string() 不要依赖错误信息作为逻辑判断
  • C语言复习笔记--数据在内存中的存储
  • 【LLM】解析RAG增强检索技术:原理、实现与应用
  • 23种设计模式-行为型模式之解释器模式(Java版本)
  • 光谱共焦位移传感器的优势有哪些?
  • 洛谷题解 | CF111C Petya and Spiders
  • 算法基础学习|02归并排序——分治
  • go单向链表
  • 阿里千问Qwen3技术解析与部署指南 :混合推理架构突破性优势与对DeepSeek R1的全面超越
  • 史学巨擘的思想地图与学术路径——王汎森解析梁启超、陈寅恪、傅斯年
  • 五一“拼假”催热超长假期,热门酒店民宿一房难求
  • 企业取消“大小周”引热议,半月谈:不能将显性加班变为隐性加班
  • 国家统计局:一季度全国规模以上文化及相关产业企业营业收入增长6.2%
  • 三位成功女性,如何应对失败
  • 外交部:欢迎外国朋友“五一”来中国