gpt4 book ai didi

python - 解析 sqlalchemy 存储过程执行的结果

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:55 26 4
gpt4 key购买 nike

我在 postgresql 数据库中有一个存储过程。

我正在尝试在带有 sqlalchemy 的 python Flask 应用程序中使用该函数。该查询如下所示:

from sqlalchemy import func

appts = db.session.execute(func.getopenappointments(current_user.id))

for appt in appts:
# work with each appt

此查询的结果是 sqlalchemy.engine.result.ResultProxy 类型的对象。该对象的每次迭代如下所示:

('(2,"2017-09-15 10:00:00",6,cleaning,available,5)',)

问题是我习惯于用以下内容来引用列:

for appt in appts:
print(appt.id)

但是由于 id 不存在而失败。我意识到输出几乎是一个字符串,我必须使用 python split() 解析它才能获得我需要的值。如何将其保留为存储过程,但能够按列引用输出,或者至少作为元组而不是常规字符串引用输出?

最佳答案

看看this question 。有一个名为 from_statement 的构造,可用于将 SQL 语句的结果解释为 SQLAlchemy ORM 模型。因此,我假设您有一个作为 ORM 映射器的 Appointment 类,这要么是因为您使用了 declarative_base,要么是因为您直接使用了映射器函数。然后你可以做类似的事情

appts = db.session.query(Appointment).from_statement(func.getopenappointments(current_user.id))

这将运行您的 SQL 存储过程并解释结果(如果它是一组 Appointment 对象)。

关于python - 解析 sqlalchemy 存储过程执行的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46230817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com