Так что у меня есть модели, как, например:Фильтр Postgres столбец JSON на нулевое значение в SQLAlchemy
class myModel(Base):
id = Column(Integer, primary_key=True)
border = Column(JSONB)
Как я могу запросить для строк, которые не имеют границы? Я пробовал:
filter(myModel.border != None) #nope
filter(myModel.border != 'null') #nope
from sqlalchemy import null
filter(myModel.border != null()) #nope
Значение по-видимому, сохраняется в postgres
как "JSON encoded null value". Он определенно становится сериализованным обратно к python None
при создании экземпляра, но я не знаю, как запросить его. Похоже, что вы можете установить none_as_null
на колонке, т.е .:
Column(JSONB(none_as_null=True))
который заменяет JSON закодированные null
с SQL NULL, но это кажется странным, что нужно сделать на всех колонках. Что мне здесь не хватает?
редактировать: Следует отметить, что это v0.9.8 из SQLAlchemy
не работает для меня – Skirrebattie