<p>在迭代<code>for row in rows:</code>中,您只是覆盖变量<code>bob</code>、<code>dave</code>等的前一个值。因此,在迭代结束时,这些变量只有最后一个值。你知道吗</p>
<p>从<code>fromVolunteers()</code>中删除迭代。此函数只应设置<code>rows</code>变量,并将迭代放在<code>main</code>函数中:</p>
<pre><code>import sqlite3
import decimal
import os
import sys
import uuid
VERSION = "oops"
DEVICE_SOFTWARE_VERSION = "OOPS"
FILENAME = "VHOURS.txt"
conn = sqlite3.connect("VOL_HOURS.db")
def fromVolunteers():
conn = sqlite3.connect("VOL_HOURS.db")
with conn:
cur = conn.cursor()
cur.execute("SELECT BOB, DAVE, CAROL, ANDY, CARL, DANNY, CHERYL, CYNTHIA, TARA, SCOTT, ASHLEY, CRYSTAL FROM VOLUNTEERS")
rows = cur.fetchall()
def main():
fromVolunteers()
testOutput = open(FILENAME, "w+")
for row in rows:
vlist = VLIST()
vlist.setBob(row[0])
vlist.setDave(row[1])
vlist.setCarol(row[2])
vlist.setAndy(row[3])
vlist.setCarl(row[4])
vlist.setDanny(row[5])
vlist.setCheryl(row[6])
vlist.setCynthia(row[7])
vlist.setTara(row[8])
vlist.setScott(row[9])
vlist.setAshley(row[10])
vlist.setCrystal(row[11])
vlist.dump_object(testOutput)
testOutput.flush()
testOutput.close()
cur.close()
conn.close()
</code></pre>