有一个嵌套循环,内部循环是sqlalchemy结果代理对象。我遇到的问题是,当外部循环的第二次迭代被实例化并返回迭代resultproxy对象时,脚本存在并带有错误
sqlalchemy.exc.ResourceClosedError: This result object is closed.
这是我的代码。当X>>时,内部循环失败。 0:
tbl = Table('users', self.meta, autoload=True, autoload_with=Engine)
stmt = select([tbl.c.id, tbl.c.name])
result = self.CONN.execute(stmt)
for x in range(2):
for row in result:
print(row[tbl.c.id])
答案 0 :(得分:1)
你正在耗尽第一个内循环本身的连接。尝试制作副本并将其存储在列表中:
tbl = Table('users', self.meta, autoload=True, autoload_with=Engine)
stmt = select([tbl.c.id, tbl.c.name])
result = self.CONN.execute(stmt)
ids = [row[tbl.c.id] for row in result]
for x in range(2):
for i in ids:
print(i)