gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 08:56:44 26 4
gpt4 key购买 nike

我无法使用查询输出中的所有行。

如果我运行第一个代码:

#1st code
l1 = [(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     E
0 1 2 3 4 John
1 10 20 30 40 Doe

如果我运行第二个代码:

#2nd code
def 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 行

最佳答案

这是因为您在 while 循环中使用了 return,当代码命中时,它会中断您的函数,因为它认为它已完成。

您可以将 return 替换为 yield,它会在生成器中一次传递一项。

关于python - 通过python更改DB2查询结果的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52733304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com