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 表

    我需要将 table1 中与特定列匹配的所有行复制到具有不同列名称的 table2 中 例如 table1 name oldAddressBook table1 的列 name Name Surname Number table2 name
  • 从 Django 基于类的视图的 form_valid 方法调用特殊(非 HTTP)URL

    如果你这样做的话 有一个 HTML 技巧 a href New SMS Message a 点击新短信打开手机的本机短信应用程序并预 先填写To包含所提供号码的字段 在本例中为 1 408 555 1212 以及body与提供的消息 Hel
  • 是否可以将普通表与临时表进行左外连接?

    我创建 SQL Server 查询并有一个包含记录的普通表 另一方面有一个包含记录的临时表 该表不为空 并且所有字段都没有任何冲突 加入 可以连接这两个不同类型的表吗 SELECT NormalTable Entityname FROM N
  • Django 说“id 可能不为 NULL”,但为什么会这样呢?

    我今天要疯了 我只是尝试插入一条新记录 但它返回了 post blogpost id 可能不为 NULL 错误 这是我的模型 class BlogPost models Model title models CharField max le
  • 如何在每次运行 python 程序时添加新列

    我希望我的表的第一列作为卷号 第二列作为名称 每当我运行 python 程序时 我想在表中添加一列日期 在这个新列中 我想填充从 user list 获得的列表将包含值 P A P P 等 如何处理 我尝试首先通过 alter 命令添加一列
  • 多个列表和大小的所有可能排列

    在 python 中使用以下命令很容易计算简单的排列itertools permutations https docs python org 3 library itertools html itertools permutations 你
  • MySQL Workbench:如何将 mysql 数据库导出到 .sql 文件?

    我需要将 mysql 工作台中的数据库导出到文件 sql 该怎么办 在 MySql Workbench 版本 8 0 中 您只需按照以下步骤操作即可 Go to Server tab Go to 数据库导出 这会打开类似这样的东西 在中选择
  • TypeError:“NoneType”对象不可下标[重复]

    这个问题在这里已经有答案了 错误 names curfetchone 0 TypeError NoneType object is not subscriptable 我尝试检查缩进 但仍然有错误 我读到 如果数据库中没有文件名记录 变量名
  • 在 Qt 5 中嵌入 Python

    我想将 Python 解释器嵌入到 Qt 5 应用程序中 我在 Qt 5 中有一个工作应用程序 但是当我把 include
  • Python Tkinter 网格复选框

    我想知道是否有一种简单的方法可以使用 Tkinter 创建复选框网格 我正在尝试制作一个由 10 行和 10 列 即 100 个复选框 组成的网格 以便每行只能选择两个复选框 编辑 我正在使用带有spyder的python 2 7 到目前为
  • 从关键字后的文本中提取字符串

    我想从 SQL 字段中关键字后面的文本中提取内容 我有一个名为Description在表中 该字段的内容是 asdasf 关键字 狗 aeee 关键字 猫 ffffaa 关键词 狼 我想提取并保存 关键字 之后的文本 在本例中dog cat
  • 如何删除 pip 安装的所有软件包?

    如何从当前激活的虚拟环境中卸载 pip 安装的所有软件包 我发现这个片段作为替代解决方案 与重新创建 virtualenv 相比 删除库更加优雅 pip freeze xargs pip uninstall y 如果您通过 VCS 安装了软
  • 使用 conda 安装额外功能

    With pip我们可以使用方括号安装子包 例如与阿帕奇气流 https pythonhosted org airflow installation html pip install airflow all 有类似的东西吗conda或者我必
  • 获取 python 模块的 2 个独立实例

    我正在与以非 OO 方式编写的 python 2 x API 进行交互 它使用模块全局范围来处理一些内部状态驱动的东西 在它不再是单例的情况下需要它 并且修改原始代码 不是我们的 不是一个选择 如果不使用单独解释器的子进程运行 有什么方法可
  • 列表中的“u”是什么意思?

    这是我第一次遇到这种情况 刚刚打印了一个列表 每个元素似乎都有一个u在它前面 即 u hello u hi u hey 它是什么意思 为什么列表的每个元素前面都会有这个 由于我不知道这种情况有多常见 如果您想了解我是如何遇到它的 我会很乐意
  • SQL准备语句如何通过多个可能的菜单选择进行选择?

    所以我有 4 个菜单选择 产品 位置 课程类型和类别 所有这些都可以为空 使用 JSF 编程 但这应该与这个问题无关 因为它是一个 SQL 问题 菜单选择将向托管 bean 发送用户选择的变量 并使用准备好的语句使用用户选择的菜单中的信息
  • 如何正确将 tflite_graph.pb 转换为 detector.tflite

    我正在使用tensorflow对象检测API使用tensorflow中的ssdlite mobilenet v2 coco 2018 05 09来训练自定义模型模型动物园 https github com tensorflow models
  • scikit-learn kmeans 聚类的初始质心

    如果我已经有一个可以作为初始质心的 numpy 数组 我该如何正确初始化 kmeans 算法 我正在使用 scikit learn Kmeans 类 这个帖子 具有选定初始中心的 k 均值 https stackoverflow com q
  • Knex 中的表的别名

    我有一个 SQL 查询两次引用同一个表 并且我需要将该表别名为两个单独的别名 我不太清楚如何用 Knex 来编写它 有一个 单词 表和一个 用户 表 Words 表有两个外键 author id 和 winner id 引用 Users 表
  • 具有重复值的 Sqlite 列

    就说专栏吧aSQLite 数据库的非常重复 始终有相同的 4 个值 其他值可能稍后出现 但不同值的数量将少于 1000 个 VALUES hello world it s a shame to store this str many tim

随机推荐

  • 从视频 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