首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将带有jsonb_each的Postgresql查询转换为sqlalchemy

,可以使用sqlalchemy的func模块中的jsonb_each函数来实现。

jsonb_each函数用于将jsonb类型的字段拆分为键值对形式的行。在sqlalchemy中,可以使用func.jsonb_each来调用该函数。

下面是将带有jsonb_each的Postgresql查询转换为sqlalchemy的示例代码:

代码语言:txt
复制
from sqlalchemy import create_engine, Column, Integer, String, func
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# 创建数据库连接
engine = create_engine('postgresql://username:password@localhost:5432/database')
Session = sessionmaker(bind=engine)
session = Session()

# 创建映射模型
Base = declarative_base()

class MyModel(Base):
    __tablename__ = 'my_table'
    id = Column(Integer, primary_key=True)
    data = Column(String)

# 查询并转换为sqlalchemy语法
query = session.query(MyModel.id, func.jsonb_each(MyModel.data).label('key_value'))
result = query.all()

# 打印结果
for row in result:
    print(row.id, row.key_value.key, row.key_value.value)

在上述代码中,首先创建了数据库连接和会话对象。然后定义了一个映射模型MyModel,其中data字段为jsonb类型。接下来,使用func.jsonb_each函数将MyModel.data字段拆分为键值对形式的行,并使用label方法给拆分后的行起一个别名key_value。最后,通过query.all()方法执行查询,并遍历结果打印出每一行的id、键和值。

这样就将带有jsonb_each的Postgresql查询成功转换为了sqlalchemy语法。请注意,上述代码中的数据库连接字符串需要根据实际情况进行修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券