Как использовать PostgreSQL jsonb_to_record в SQLAlchemy? - PullRequest
0 голосов
/ 29 февраля 2020

PostgreSQL имеет такие функции, как jsonb_to_record или jsonb_populate_record, которые позволяют преобразовывать данные, хранящиеся в столбце JSONB, в отдельные столбцы. однако я использую SQLAlchemy, а для jsonb_to_record требуется предопределенная структура для вывода (см. пример ниже из PostgreSQL документов)

select * from json_to_record('{"a":1,"b":[1,2,3],"c":"bar"}') as x(a int, b text, d text)

Есть ли способ использовать эти функции из SQLAlchemy?

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете использовать любую функцию postgres в SQLAlchemy с забавой c, например, так:

from SQLAlchemy import func
session.query(func.json_to_record(Model.jsonb_field))

Обратите внимание, что функции, возвращающие множество, немного трудны для работы с SQLAlchemy, но если хочешь, можешь заставить его работать.

...