簡體   English   中英

執行中的 Python sqlite3 字符串變量

[英]Python sqlite3 string variable in execute

我嘗試在 Python 中執行這個 sqlite3 查詢。 我將代碼減少到最低限度,sqlite.connect 等工作正常。

column = 'Pron_1_Pers_Sg'
goal = 'gender' 
constrain = 'Mann'


with con:
    cur = con.cursor()

    cur.execute("SELECT ? FROM Data where ?=?", (column, goal, constrain))
    con.commit()

    rows = cur.fetchall()

    for element in rows:
        values.append(element)

這將返回一個空列表。 如果我對字符串進行硬編碼,它將起作用並返回值。

參數標記只能用於表達式,即值。 您不能將它們用於諸如表名和列名之類的標識符。

用這個:

cur.execute("SELECT "+column+" FROM Data where "+goal+"=?", (constrain,))

或這個:

cur.execute("SELECT %s FROM Data where %s=?" % (column, goal), (constrain,))

(並且在您真正完成訪問數據之前不要提交。)

試試這個: c.execute("SELECT {idf} FROM Data WHERE {goal}".\\ format(idf=column, goal=constrain))

我今天遇到了類似的問題。 我不確定,這是否可以解決您的問題:

cur.execute("SELECT ? FROM Data where ?=?", (column, goal, constrain,))

重要的是最后

試一試,這是我的代碼的問題 - 所以也許它對你也有幫助。 抱歉,無法真正解釋原因,因為我只是在學習自己,並且已經使用 python/sqlite 幾個星期了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM