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

sqlalchemy查询json

第一种:字段op是json格式:

{
        "uid": "cxb123456789",
        "role": 2,
        "op_start_time": 1743513707504,
        "op_end_time": 1743513707504,
        "op_start_id": "op_001",
        "op_end_id": "op_002",
        "op": {
          "ability_node": [{"id": "2c6adc22-e05a-4fe9-835f-ba5d7f8b303", "name": "连接数限制"}],
          "skill_node": [{"id": "cvlp6o324te32pj24teg", "name": "yyyy"}],
          "knowledge_node": [{"id": "cvlp6o324te32pj24teg", "name": "端到端加密"}],
          "op_id": "9131c441-4304-4101-b064-362352d26789",
          "op_name": "Initial Data Import",
          "pre_op": "",
          "next_op": "op_002",
          "dep_relationship": "",
          "op_result": 1,
          "op_score": 95.5,
          "op_count": 1
        }
      }

要求:查询op的json字段里面的op_id为传入的op_id

from sqlalchemy.future import select

db_query = select(KnowledgeAiReport)
op_id = report.op.op_id
db_query = db_query.filter(KnowledgeAiReport.uid == report.uid).filter(KnowledgeAiReport.op.op('->>')('op_id') == op_id)
item = await db_session.execute(db_query)
report_db = item.scalars().first()

第二种:person_type也是json字段,

要求:存储的值是 ["1","2"],要求传入 “1”能查出对应的数据

实现代码: 

from sqlalchemy.dialects.postgresql import JSONB  # 使用JSONB,因为它支持全文搜索
from sqlalchemy import cast
from sqlalchemy.future import select


db_query = select(TbResident)
db_query = db_query.filter(cast(TbResident.illness_type, JSONB).op('@>')([f'{illness_type}']))
db_query = db_query.offset(page_no * page_size).limit(page_size).order_by(TbResident.created_at.desc())
    item = await db_session.execute(db_query)
    residents = item.scalars().all()

http://www.dtcms.com/a/112334.html

相关文章:

  • STM32CubeMX-H7-11-IIC读写MPU6050模块(上)-软件IIC协议的解析、封装,实现基本功能获取MPU6050的ID
  • 结肠镜3D视频数据集-C3VD论文中文版
  • 构建自己的私有 Git 服务器:基于 Gitea 的轻量化部署实战指南
  • 2025年3月 Scratch 图形化(二级)真题解析 中国电子学会全国青少年软件编程等级考试
  • 当 “原子” 遇上 “光腔”:量子计算的新舞台
  • 前端页面鼠标移动监控(鼠标运动、鼠标监控)鼠标防抖处理、mousemove、debounce()、事件停止触发、超时触发
  • 博途之S7通讯
  • 仿小红书社交源码+及时通讯聊天软件APP源码
  • Springboot面试篇
  • 三维扫描助力文化遗产数字化保护
  • [特殊字符] 使用 Handsontable 构建一个支持 Excel 公式计算的动态表格
  • 【调研】YOLO算法在FPGA/ZYNQ上的部署与加速
  • 文化算法初探
  • 决策树实战:用Python实现智能分类与预测
  • DE2-115分秒计数器
  • 基于javaweb的SpringBoot图片管理系统图片相册系统设计与实现(源码+文档+部署讲解)
  • 基于javaweb的SSM酒吧后台管理系统设计与实现(源码+文档+部署讲解)
  • 【棒垒球规则】全国幼儿软式棒垒球比赛规则(二)·棒球1号位
  • java流程控制04:if选择结构
  • Python 元组
  • deepseek v3-0324 Markdown 编辑器 HTML
  • uniapp的v-for不显示或者swiper-item的不显示
  • LabVIEW面向对象编程设计方法
  • Git Rebase 操作中丢失提交的恢复方法
  • 目前来讲 有哪些三维重建算法,哪个算法效果好
  • 【QT】获取文件路径中的文件名,去掉后缀,然后提取文件名中的数字
  • 判断HiveQL语句为ALTER TABLE语句的识别函数
  • Hyperlane:高性能 Rust HTTP 服务器框架评测
  • 第一期第9讲21:50
  • 洛谷题单3-P1420 最长连号-python-流程图重构