gpt4 book ai didi

python - SQLALchemy:查询 Postgres JSONB 列的单个键或键的子集

转载 作者:行者123 更新时间:2023-11-29 12:15:26 25 4
gpt4 key购买 nike

我有一个包含 JSONB 列的 Postgres 表。在 SQLAlchemy 中,如何在不一次加载整个列的情况下查询该列的数据?

假设 JSONB 列 myjsonb包含 {'a': 1, 'b': 2, 'c': 3, ... 'z': 26} .我只想要 'a' 的值而不是所有 26 个值。如何指定一个查询来执行此操作?

例如,

query = session.query(MyTable).options(defer('myjsonb')).join(MyTable.myjsonb['a'])

不起作用。

知道我如何只能检索 'a' ?如果键 'a' 会发生什么不存在?以及如何加载多个 key ,比方说 'b'到 ' f' ,但不是所有的人一次?谢谢!

最佳答案

这实际上非常简单,您只需查询您感兴趣的键即可:

query = session.query(MyTable.myjsonb['a'])

如果你想要来自 json 对象的多个键,比如说 ac,你可以

query = session.query(MyTable.myjsonb['a'], MyTable.myjsonb['c'])

如果任何键不存在,它只会为该行返回 None

关于python - SQLALchemy:查询 Postgres JSONB 列的单个键或键的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56945981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com