为什么 for 循环变量在遍历 sqlite 数据库时每隔一行跳过一次?



我建立了一个sqlite数据库,记录了一些世界交易数据。 我正在迭代数据库并想提取一些数据,这些数据将流入该类的另一个方法(有效 - 没问题)。

但是,遍历数据库,我有两个变量"row"和"l":

对于数据库中的行("..."):
l = self.c.fetchone()

奇怪的是,一半的数据在变量"行"中,另一半在"l"中。我花了很长时间才弄清楚,但现在我真的不知道,为什么会出现这个问题?如果我迭代"行"的列表/数据库 - "行"应该有每次迭代的所有数据吗?

我尝试从新循环中以不同的方式通过"row"和"l"访问行 - 重写循环并重组它们,但后来我有太多的数据和 2000 多个入口点???我使用了 fetchmany() - 并制作了另一个(外部)循环来迭代,...

for row in self.c.execute("SELECT order_number,quotaStart,valid FROM volume"):
l = self.c.fetchone()
count+=1
print(count,">>",row)
print(count,">>",l)

我希望可以通过"行"或"l"访问数据 - 但不是一半在一个变量中,另一半在另一个变量中?

您混合了 2 种访问查询结果的不同方式。 最简单的方法是:

for row in self.c.execute("SELECT order_number,quotaStart,valid FROM volume"):
print(count, ">>", row)

或者:

self.c.execute("SELECT order_number,quotaStart,valid FROM volume"):
while l = self.c.fetchone():
print(count, ">>", l)

最新更新