python - 没有特定键的sqlalchemy JSON查询行(键存在)

标签 python postgresql sqlalchemy

将 sqlalchemy 与 postgresql 结合使用时,我有以下表格和数据:

 id |   data   
----+----------
  1 | {}
  2 | {"a": 1}
(2 rows)

如何找到没有键的行。例如“a”还是数据[“a”]?

Give me all objects that does not have the key a.
 id |   data   
----+----------
  1 | {}
(1 row)

self.session.query(Json_test).filter(???)

最佳答案

如果列类型是 jsonb 你可以使用 has_key :

session.query(Json_test).filter(sqlalchemy.not_(Json_test.data.has_key('a')))

对于 jsonjsonb 类型,这应该有效:

session.query(Json_test).filter(Json_test.data.op('->')('a')==None)

关于python - 没有特定键的sqlalchemy JSON查询行(键存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39928463/

相关文章:

Python文件练习题

python - 在 Python 中总结一个列表 - 在一个元组和另一个列表中

json - 从 postgresql 中的 json 文件的结果中选择字符串

python - 跨所有模型共享事件处理程序

python - 使用数组在 mongodb 中查找值

python - 有效计算数组元素的所有成对组合的度量

PHP:解析 postgre 的默认字符串时间戳格式

sql - sql 查询结果中的重复(重复)行

python - 我可以向 SQLAlchemy 中的模型添加一个事件,该事件会在删除项目时触发吗?

python - 如何在 Cherrypy 和 SQLAlchemy 的同一个请求中使用多个数据库?