Я не могу понять, как использовать SQLAlchemy для запроса таблицы, содержащей данные JSONB.
Структура JSON похожа на эту:
example = {
"product": "Widget",
"version": 1,
"release_date": "2019-07-01T00:00:00.000Z",
"widget": {
"code": "ABCDEF",
"name": "my widget",
"uses": {
"rain": "yes",
"snow": "no",
"heat": "sometimes",
...
Я пытаюсьвыполнить запрос с этой функциональностью:
SELECT
json AS acdata
FROM
aircraft.aircraft
WHERE json -> 'widget' -> 'uses' ->> 'rain' = 'No';
в этой форме:
widget= session.query(Widget).filter_by(rain='No').first()
Я знаю, что дождь = 'Нет' не правильно, но я не могу понять, что должноиди туда!Цель состоит в том, чтобы получить первый виджет, ключ которого widget.uses.rain = 'No'
У меня есть это определение для моего класса Widget
from sqlalchemy import Column, Integer, ForeignKey
from sqlalchemy.dialects.postgresql import JSONB, UUID
class Widget(Base):
__tablename__ = 'widgets'
__table_args__ = {'schema' : 'factory'}
id = Column(UUID(as_uuid=True), primary_key=True)
json = Column(JSONB, nullable=False)
...