SQLAlchemy 根据 JSONB 中的嵌套键进行过滤

2023-11-22

我有一个 JSONB 字段,有时有嵌套键。例子:

{"nested_field": {"another URL": "foo", "a simple text": "text"},
 "first_metadata": "plain string",
 "another_metadata": "foobar"}

If I do

.filter(TestMetadata.metadata_item.has_key(nested_field))

我得到了这个记录。

如何搜索嵌套键是否存在? ("a simple text")


使用 SQLAlchemy,以下内容应该适用于您的测试字符串:

class TestMetadata(Base):
    id = Column(Integer, primary_key=True)
    name = Column(String)
    metadata_item = Column(JSONB)

as per SQLAlchemy 文档JSONB(搜索路径索引操作例子):

expr = TestMetadata.metadata_item[("nested_field", "a simple text")]
q = (session.query(TestMetadata.id, expr.label("deep_value"))
     .filter(expr != None)
     .all())

这应该生成SQL below:

SELECT  testmetadata.id AS testmetadata_id, 
        testmetadata.metadata_item #> %(metadata_item_1)s AS deep_value
FROM    testmetadata
WHERE  (testmetadata.metadata_item #> %(metadata_item_1)s) IS NOT NULL
-- @params: {'metadata_item_1': u'{nested_field, a simple text}'}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLAlchemy 根据 JSONB 中的嵌套键进行过滤 的相关文章

  • Mysql 中 UNION 子句的替代方案

    我有两张桌子 表 a 表 b table a ID 1 2 3 4 5 7 table b ID 2 3 4 5 6 我必须得到这样的输出而无需UNION命令 ID 1 2 3 4 5 6 7 注意 我有一个联合解决方案 select fr
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • 是否有适用于所有数据库的标准sql

    如下所示 不同数据库的语法有所不同 是否存在适用于所有数据库的标准方法 有没有什么工具可以将任意sql转换为任意sql SQL Server 2005 CREATE TABLE Table01 Field01 int primary key
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp

随机推荐

  • 从视频 URL 中提取缩略图

    我必须从视频 来自网址 中提取缩略图 我使用以下代码 NSString stringUrl video stringurl NSURL url NSURL URLWithString stringUrl AVURLAsset asset A
  • 用 C++ 读取另一个进程的标准输出

    在 Windows 中 有没有办法在 C 中启动进程 然后在完成后将其吐出到 stdout 中 如有必要 必须使用提升的权限 在 Vista 或更高版本上 运行该进程 我目前正在使用 ShellExecuteEx 启动进程并运行 while
  • jQuery data() 如何打破循环引用

    我读过一篇为什么它更好 and 它是如何实施的 但我真正不明白的是它如何打破循环引用 它如何打破参考圆 div1 data item div2 div2 data item div1 例如 上面的div互相指向 如何防止 我有一种预感 但我
  • 在不裁剪的情况下缩放 SDL Surface 的正确方法?

    缩放 SDL Surface 的正确方法是什么 我在网上找到了一种解释 但它需要逐像素地重新绘制表面 似乎应该有某种方法可以通过 SDL 本地执行此操作 而不是像那样重新绘制图像 我在 SDL 文档中找不到任何涉及此内容的内容 我可以通过修
  • 从 sbt shell 中设置环境变量

    我希望能够在交互式 sbt shell 中设置环境变量 但我似乎找不到方法来做到这一点 我查看了官方 sbt 文档以及 stackoverflow 但没有成功 我想明确的是我不想要必须在中设置此环境变量build sbt文件 而是能够在交互
  • android从布局xml动态添加元素

    如何从此布局 xml 中获取元素 myButton
  • 如何获取 RawInput HID 设备的人类可读名称?

    我正在将应用程序从 DirectInput 切换到 RawInput 以进行游戏手柄处理 并且我想为每个游戏手柄提供人类可读的描述 理想的情况是显示在设备管理器中的设备文本 但 USB 产品描述也可以 任何方法都应该在没有管理员许可的情况下
  • 谷歌地图 setMap 不是一个函数

    我正在处理我的谷歌地图页面在 Firebug 中显示错误的问题 当我在经销商地图中搜索时 将触发 clearLocations 函数 但出现了这个错误 markers i setMap 不是一个函数 有谁知道如何解决这个问题 我在几个论坛和
  • 更改列名而不重新创建 MySQL 表

    有没有办法在不进行重大更改的情况下重命名 InnoDB 表上的列 桌子相当大 我想避免重大停机 重命名列 使用ALTER TABLE CHANGE COLUMN 不幸的是需要 MySQL 运行全表复制 查看pt 在线架构更改 这有助于您对表
  • Netbeans 更新失败

    我的互联网连接没有问题 但是当我尝试更新 netbeans 插件或 IDE 本身时 每次都会出现此屏幕 即使重新安装操作系统也无法解决此问题 一次又一次地遇到同样的错误 我该如何修复它 在 Netbeans 中 Go to Tools gt
  • 使用 jQuery 更改图像地图坐标值

    我有一个非常复杂的图像映射 我想将其缩小一半 为此 需要将所有坐标值除以 2 由于有数千个坐标值 我想我可以使用 jQuery 遍历 DOM 来查找坐标值 然后将它们除以 2 当涉及到 JavaScript 和 jQuery 时 我非常业余
  • 为什么“复制到输出目录”选择的用语在不同位置之间会发生变化?

    VS NET 中的解决方案资源管理器中的配置值措辞与 VS NET 中的预计值之间存在不一致 csproj文件 在Solution Explorer a config或依赖文件中会有多个选项Copy To Output Directory影
  • Laravel 5.6:创建图像缩略图

    在我的旧 PHP 应用程序中 我曾经运行如下函数来创建 jpeg 图像缩略图 function imageThumbanail image src imagecreatefromjpeg http examplesite com image
  • Luigi - 覆盖任务需要/输入

    我正在使用 luigi 执行一系列任务 如下所示 class Task1 luigi Task stuff luigi Parameter def output self return luigi LocalTarget test json
  • Rust 的句法语法是上下文无关的还是上下文相关的?

    几乎没有任何编程语言的句法语法是规则的 因为它们允许任意深度嵌套的括号 Rust 也这样做 let x 但 Rust 的句法语法至少是上下文无关的吗 如果不是 什么元素使语法与上下文相关 或者语法是否可以递归枚举 例如C 的句法语法 Rel
  • 为什么我需要文档类型? (它有什么作用)[重复]

    这个问题在这里已经有答案了 可能的重复 HTML DOCTYPE 的功能是什么 我最近在这里问了一个问题 解决方案很简单 您需要向页面添加文档类型 这应该可以解决您的问题 现在 我的页面在没有文档类型的每个浏览器中都可以正常工作 IE 除外
  • jQuery 多文档就绪队列顺序

    我知道 jQuery 中对 function 的调用是按照定义的顺序执行的 但我想知道您是否可以控制队列的顺序 例如 是否可以在 Hello World 1 之前调用 Hello World 2 function alert Hello W
  • 使用 SharpSvn 检索日期范围内的日志条目

    我在用着SharpSvn通过 C 代码与我的 svn 存储库交互 我使用此代码来检索 svn 日志条目 Collection
  • 如何设置输入超时

    如果你等了 4 秒 它会说 你没时间了 这很好 但是 为了保持循环继续 您必须按enter键继续 我希望当它在下面打印 你没时间了 而不是仅仅键入时 它会显示一个输入语句 例如 键入 攻击 以继续 并且循环将从原来的位置继续 from th
  • SQLAlchemy 根据 JSONB 中的嵌套键进行过滤

    我有一个 JSONB 字段 有时有嵌套键 例子 nested field another URL foo a simple text text first metadata plain string another metadata foo