我是編程新手,從 python 開始我在帖子中找到了這個腳本(下面的鏈接)query = 'SELECT * FROM {}'.format(table) c.execute(query)如何為 SQLite 表名使用變量它有效,但現在我必須增加一些復雜性并且不知道如何......我之前有這個:def add(order, theme): parameters = [order, theme] c.execute("INSERT INTO TABLE_NAME VALUES(NULL, ?,?)", parameters)所以我嘗試使用相同的,但可以自由選擇表的名稱。嘗試這樣的事情,但真的不知道它的語法:def add(order, theme): table = input("with what table do you want to work with? ") parameters = [order, theme] insert = 'INSERT INTO {} VALUES(NULL, ?,?)'.format(table, parameters) c.execute(insert)我懷疑它不起作用希望你能幫忙!:)
2 回答

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
以下行{}用變量的內容替換table并將結果存儲在變量查詢中。 format適用于任何字符串:
query = 'SELECT * FROM {}'.format(table)
另一方面,通過將字符串中的c.execute替換?為列表中的值來完成的替換類型parameters:
c.execute("INSERT INTO TABLE_NAME VALUES(NULL, ?,?)", parameters)
您可以將它們結合起來以達到您想要的效果:
table = input("with what table do you want to work with? ")
query = 'INSERT INTO {} VALUES(NULL, ?, ?)'.format(table)
parameters = [order, theme]
c.execute(query, parameters)

侃侃無極
TA貢獻2051條經驗 獲得超10個贊
你在混合東西。
Format 是 Python 字符串對象的一種方法,用于根據代碼中的變量動態生成字符串。在您的第一個示例中定義數據庫名稱是正確的。
問題標記作為查詢值的占位符是 SQL 的特性,并且必須像第二個示例中那樣在沒有格式的情況下使用。
要修復您的代碼,首先使用格式構建查詢的字符串模板來定義數據庫名稱。然后,使用 execute 執行結果字符串并傳遞針對問號的參數。
添加回答
舉報
0/150
提交
取消