SQLALchemy:查询postgresjsonb列的单个键或键子集

2024-10-04 03:19:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Postgres表,它有一个JSONB列。如何在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'不存在,会发生什么呢?我如何加载多个键,比如说'b'f',但不能同时加载所有的键?谢谢!在


Tags: 数据sqlalchemysessionmytable密钥postgresjsonbquery
1条回答
网友
1楼 · 发布于 2024-10-04 03:19:09

这实际上很简单,您只需查询感兴趣的键,如:

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

如果您想要来自json对象的多个键,比如ac,那么就可以了

^{pr2}$

如果任何键不存在,它将只返回该行的None。在

相关问题 更多 >