我在postgresql数据库中有一个存储过程。
我正在尝试使用sqlalchemy在python烧瓶应用程序中使用该功能。该查询如下所示:
apply from: 'checkstyle.gradle'
此查询的结果是sqlalchemy.engine.result.ResultProxy类型的对象。该对象的每次迭代都如下所示:
from sqlalchemy import func
appts = db.session.execute(func.getopenappointments(current_user.id))
for appt in appts:
# work with each appt
问题是我习惯用以下内容来引用列:
('(2,"2017-09-15 10:00:00",6,cleaning,available,5)',)
但由于id不存在而失败。我已经意识到输出几乎是一个字符串,我必须解析python split()只是为了得到我需要的值。我如何保持这个存储过程但能够按列引用输出,或者至少作为元组而不是常规字符串?
答案 0 :(得分:1)
看看this question。有一个名为from_statement
的构造,可用于将SQL语句的结果解释为SQLAlchemy ORM模型。
所以我假设你有一个Appointment
类,它是一个ORM映射器,要么是因为你使用了declarative_base,要么是因为你直接使用了mapper函数。
然后你可以做类似
appts = db.session.query(Appointment).from_statement(func.getopenappointments(current_user.id))
如果它是一组Appointment
个对象,它将运行您的SQL存储过程并解释结果。