我正在嘗試撰寫一個小程式來轉換資料庫。它是一個 SQLite 資料庫,我使用的是 Python。我遇到了一個問題,我正在撰寫的查詢似乎無法正常作業:
def transform():
con = sqlite3.connect('database.db')
cur = con.cursor()
cur2 = con.cursor()
data = cur.execute('''SELECT * FROM table_1''')
columns = []
for column in data.description:
columns.append(column[0])
for column2 in columns:
cur2.execute('''SELECT ? FROM table_1''', (column2, ))
content = cur2.fetchall()
print(content)
出于某種原因,這里列印的只是列名重復多次的串列。如果我更換 ? 但是,從列變數的輸出中復制列名,它可以作業,并列印列中的每一行。
我究竟做錯了什么?
uj5u.com熱心網友回復:
您不能讓連接器替換表名和列名。發生的情況是連接器產生如下 SQL:
SELECT 'column' FROM table_1;
你得到的是文字字串'column'。你需要
curr2.execute(f"SELECT {column2} FROM table_1;")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422609.html
標籤:
上一篇:SQLiteJOIN麻煩
