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()
相关推荐
傻瓜搬砖人8 分钟前
Spring集成Web环境
java·spring·maven
FQNmxDG4S12 分钟前
Java泛型编程:类型擦除与泛型方法的应用场景
java·开发语言·python
CDN36023 分钟前
排查实录:网站偶发502/504错误?360CDN回源超时配置与日志分析技巧
前端·数据库
之歆1 小时前
Day07_CSS盒子模型 · 样式继承 · 用户代理样式
前端·css
GottdesKrieges1 小时前
OceanBase恢复常见问题
java·数据库·oceanbase
IGAn CTOU1 小时前
Java高级开发进阶教程之系列
java·开发语言
leo825...1 小时前
Claude Code Skills 清单(本地)
java·python·ai编程
NGSI vimp1 小时前
Java进阶——如何查看Java字节码
java·开发语言
DanCheOo1 小时前
AI 应用的安全架构:Prompt 注入、数据泄露、权限边界
前端·人工智能·prompt·安全架构
We་ct2 小时前
深度剖析浏览器跨域问题
开发语言·前端·浏览器·跨域·cors·同源·浏览器跨域