我有以下代碼:
con =sqlite3.connect('library.db')
cur = con.cursor()
data=cur.execute('''SELECT * FROM Database''')
for word in word_list:
iteration_counter = 0
for column in data.description:
query = f'''SELECT {column[0]} FROM Database WHERE LOWER({column[0]}) = ?'''
cur.execute(query,(word,))
output = cur.fetchone()
iteration_counter = 1
print(iteration_counter)
word_list 是一個串列變數,用于將輸入文本中的單詞小寫。我希望函式查詢串列中的每個單詞,以找出該單詞位于資料庫中的哪一列。為了驗證 for 回圈是否有效,我讓函式列印變數迭代計數器,該變數隨查詢的每一列遞增。對于串列中的第一個單詞,這顯然有效。然而,對于每個其他單詞 - 回圈在 1 處停止。
我究竟做錯了什么?
uj5u.com熱心網友回復:
程式在data迭代游標 ( ) 時更改游標 ( )的“值” for column in data.description:。
也許對dataSELECT使用連接的執行方法,例如data=con.execute('''SELECT * FROM Database''')
或者query通過cur2 = con.cursor在連接之后添加行然后使用cur2內部for而不是cur.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/360109.html
