/ / filas de consultas JSON sqlalchemy sin una clave específica (existencia clave) - python, postgresql, sqlalchemy

filas de consultas JSON de sqlalchemy sin una clave específica (existencia de clave) - python, postgresql, sqlalchemy

Cuando uso sqlalchemy con postgresql, tengo la siguiente tabla y datos:

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

¿Cómo encuentro las filas que no tienen una clave? p.ej. "a" o datos ["a"]?

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

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

Respuestas

2 para la respuesta № 1

Si el tipo de columna es jsonb puedes usar has_key:

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

Para ambos json y jsonb tipos esto debería funcionar:

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