python - 如何在 SQLAlchemy 中使用 PostgreSQL 的 jsonb_to_record?
问题描述
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 中的这些函数?
解决方案
您可以使用 SQLAlchemy 中的任何 postgres 函数和 func ,如下所示:
from SQLAlchemy import func
session.query(func.json_to_record(Model.jsonb_field))
请注意,使用 SQLAlchemy 处理 set-returning 函数有点麻烦,但如果你愿意,你可以让它工作。
推荐阅读
- wcf - Powerbuilder.net 不在 DotNet Web 服务 (WCF) 中组装
- angular - 如何将托管在 docker 容器中运行的 tomcat 上的角度前端连接到也在 docker 容器中运行的 springboot 后端?
- go - 如果列表项具有键==值,则从列表中获取值
- c# - 用c#中列表中的连续元素替换字符串占位符
- typescript - 如何使用自定义匹配器扩展 jest expect 的 extendExport typescript 命名空间
- three.js - 具有 JPG 纹理的自定义 three.js 着色器。每一帧的图像解码和 texTexture2D 调用都会导致大量丢帧
- flask - 有没有办法使用 wtforms 遍历 Flask 中的 Form 中的 FormField?
- php - 数据库中的数据不会传递给 laravel 中的 view.blade
- laravel - Flutter - 包含令牌的字符串被存储并返回前导斜杠和引号。如何删除它们?
- jquery - ChartJs 没有以不同的颜色显示线条颜色