假设我通过 SQLAlchemy 的声明式系统创建了一个表。
class Recipe (Base):
__tablename__ = 'recipe'
id = Column(Integer, primary_key=True)
title = Column(Text)
instructions = Column(Text)
Run Code Online (Sandbox Code Playgroud)
现在假设我执行一个查询,生成该类r
的一个实例Recipe
。如何获取r
第 3n
列的值?(例如,表达r.instructions
为r[2]
-- 这不起作用。)
发现了一些东西:
getattr(r, list(Recipe.__table__._columns)[n].name)
Run Code Online (Sandbox Code Playgroud)
Recipe.__table__columns
返回看起来像列表但实际上是一个ImmutableColumnCollection
. 因此,我们通常将list
其转换为 1,并采用该列表的n
第一个元素的名称 - 列名称(因此对于n == 2
,这将是instructions
)。最后,我们从对象getattr
中获取该名称的属性。Recipe
r
归档时间: |
|
查看次数: |
2478 次 |
最近记录: |