You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中extract函数仅返回单条记录,需返回全表记录并跨函数使用

问题分析与解决

你的extract()函数只返回单条记录的核心原因是:for循环中第一次执行return row时,函数会直接终止并返回当前行,后续循环迭代完全不会执行。

修正方案(直接返回全量数据)

fetchall()本身就会返回查询到的所有记录组成的列表,直接返回该结果即可,无需额外的for循环:

def extract(self):
    return self.oracle_conn().execute('select * from employees').fetchall()

可选方案(按需处理后返回)

如果需要在返回前对每条记录做格式转换等处理,可以用生成器(yield)逐个返回记录,调用方可以通过迭代获取所有数据:

def extract(self):
    data = self.oracle_conn().execute('select * from employees').fetchall()
    for row in data:
        # 此处可添加对row的自定义处理逻辑
        yield row

调用生成器获取全量数据的方式:

all_employees = list(your_instance.extract())

内容的提问来源于stack exchange,提问作者Jim Macaulay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:05:29