【发布时间】:2017-09-15 02:28:15
【问题描述】:
我在 postgresql 数据库中有一个存储过程。
我正在尝试在带有 sqlalchemy 的 python 烧瓶应用程序中使用该函数。该查询如下所示:
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() 解析它才能获得我需要的值。我如何才能将其保留为存储过程,但能够按列引用输出,或者至少作为元组而不是常规字符串?
【问题讨论】:
-
为什么你的记录是这样格式化的?
-
我认为这是关键问题。该记录没有按照我期望的格式与典型的 sqlalchemy 结果格式化。但这是我执行存储过程得到的结果。
-
你知道结果中每个“字段”的数据类型吗? “清洁”和“可用”是什么类型?字符串?
-
您使用的是什么数据库?
getopenappointments是如何定义的?包括一个正确的minimal reproducible example。 -
感谢您的反馈!我更详细地更新了问题。
标签: python sqlalchemy