给定以下 sess 查询:

sess = DBSession()
reg =  sess.query(Registration,Schedule).join(Schedule,Registration.classcode==Schedule.classcode).filter(Registration.registration_no==reg_id)

我该如何处理结果“reg”中的字段?

reg.timeofentry 抛出错误:TypeError: Can't convert 'int' object to str implicitly
我正在迅速学会厌恶 SQLAlchemy,因为它完全围绕简单的 SQL 语法进行了神秘的包装。

最佳答案

奇怪的是,在这种情况下,从迭代结果 row 返回的命名元组 reg 中的名称将是 RegistrationSchedule :

for row in reg:
   print row.Registration, row.Schedule

我无法重现您的特定错误消息“无法将 'int' 对象隐式转换为 str”。如果我尝试访问 KeyedTuple 上不存在的名称,则会显示一条明确的消息:
AttributeError: 'KeyedTuple' object has no attribute 'imfake'

阅读 the intro to Querying in the ORM tutorial 后,查询返回值的行为应该不那么神秘了。

关于python - 如何访问连接 SQLAlchemy 中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20080714/

10-13 07:22