gpt4 book ai didi

Python foreach 没有正确循环

转载 作者:太空宇宙 更新时间:2023-11-04 09:58:52 25 4
gpt4 key购买 nike

我正在编写一个脚本,将一堆 csv 文件格式化为一个 csv 文件。

为此,我通过 sqlite 在 python 中使用了几个游标表。

这是我的代码——目前我只是试图获取 gsap 中与 gsap_locs 中的代码相关联的每一行以进行打印

data = c.execute("SELECT * from gsap_locs")
for row in data:
print row[0]
d2 = c.execute("select date, cardtype, volume, transactions from gsap where gsaploc=?", (row[0],))
for r2 in d2:
print r2

但是,我的代码只返回一行。我知道问题不在第一个 for 中,因为当我在 print row[0] 之后取出所有内容时,它会打印出第一个选择中的所有值。

为什么在不满足第一个for的条件的情况下跑完第二个for就从我的第一个for跑出来了?

最佳答案

您缺少 fetchallfetchone 指令。
这是很常见的事情,我们认为 execute 已经完成了获取数据的工作,但您应该使用 fetch
要在执行 SELECT 语句后检索数据,您可以将游标视为迭代器,调用游标的 fetchone() 方法检索单个匹配行,或调用 fetchall() 获取匹配行的列表。

import sqlite3
conn = sqlite3.connect('gasp.sqlite')
c = conn.cursor()
c.execute("SELECT * FROM gsap_locs")
rows = c.fetchall()
for row in rows:
print row[0]
c.execute("select * from gsap where loc=?", (row[0],))
d2 = c.fetchall()
for r2 in d2:
print r2
conn.close()

关于Python foreach 没有正确循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44682238/

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