$ cat foo.py
import sqlalchemy as db
from sqlalchemy.sql import text
engine = db.create_engine(<redacted>)
with engine.connect() as session:
games = session.execute(statement=text('select * from game')).all()
for g in games:
print(g.id)
$ python3.11 foo.py
1
with engine.connect() as conn:
res = conn.execute(text("""SELECT * FROM tbl"""))
for row in res:
row_as_dict = row._asdict()
# Do something with the dict
2条答案
按热度按时间zpjtge221#
您应该能够使用点表示法而不是下标表示法:
fykwrbwg2#
如果出于某种原因,你想要字典式的访问,你可以使用Row的_mapping属性:
如果你想让这一行作为一个真正的字典(
._mapping
的返回值不是真正的dict
),那么使用_asdict()方法:一般来说,我们不应该在Python中使用下划线前缀的对象属性,因为下划线表示属性是私有的,但是对于行属性,它们是前缀的,以防止与数据库中的列发生名称冲突。