我无法使用查询输出中的所有行。如果我运行第一个代码:#1st codel1 = [(1, 2, 3, 4, 'John'),(10, 20, 30, 40, 'Doe')]labels = ['A', 'B', 'C', 'D', 'E']df = pd.DataFrame.from_records(l1, columns=labels)print(df)输出是: A B C D E0 1 2 3 4 John1 10 20 30 40 Doe如果我运行第二个代码:#2nd codedef c2nd(): conn = ibm_db.pconnect("db login details;", "", "") sql = "SELECT * FROM METADATA.TBD_201811_TMP_AT" stmt = ibm_db.exec_immediate(conn, sql) tuple = ibm_db.fetch_tuple(stmt) while tuple != False: l = list(tuple) return l tuple = ibm_db.fetch_tuple(stmt) print(c2nd())输出只有一行而不是两行:[10,20,30,40,'Doe']问题是,如果我尝试将结果写入 .csv 文件,我总是只收到结果的最后一行。我怎样才能列出并使用我的输出的所有(在我的情况下是两行)行?ps:仅供参考,结果也可以包含 1000 或 100 000 行
1 回答

慕婉清6462132
TA贡献1804条经验 获得超2个赞
这是因为您return
在 while 循环中使用,当代码命中时,它会因为它认为已经完成而跳出您的函数。
您可以替换return
为yield
,它会在生成器中一次传递一个项目。
添加回答
举报
0/150
提交
取消