给定以下 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
中的名称将是 Registration
和 Schedule
:
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/