为了账号安全,请及时绑定邮箱和手机立即绑定

通过python更改来自DB2的查询结果的类型

通过python更改来自DB2的查询结果的类型

摇曳的蔷薇 2021-07-06 09:54:08
我无法使用查询输出中的所有行。如果我运行第一个代码:#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 循环中使用,当代码命中时,它会因为它认为已经完成而跳出您的函数。

您可以替换returnyield,它会在生成器中一次传递一个项目。


查看完整回答
反对 回复 2021-07-13
  • 1 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号