簡體   English   中英

從 Python 插入 SQLite DB - “接近”?“:語法錯誤”

[英]Insert Into SQLite DB from Python - “near ”?“: syntax error”

我一直收到此錯誤,同時嘗試將數據從 Pandas df 插入 SQLite DB: near "?": syntax error 代碼片段看起來像這樣,在另一個腳本中,類似的想法可以正常工作。 我的df有 4 列(int 和 3x 字符串),相同的列名和類型在 SQLite 表中,稱為titles

conn = sqlite3.connect('test_db_2.db')
c = conn.cursor()

for i in range(len(df)):
    try:
        c.execute("""INSERT INTO titles (?,?,?,?)""",df.iloc[i,:])
        conn.commit()

可能是什么原因?

您缺少VALUES()關鍵字,該關鍵字必須位於要插入的值的元組之前:

INSERT INTO titles VALUES (?, ?, ?, ?)
                 --^--  

我還建議枚舉要插入的列。 這是 SQL 中的一個很好的做法,因為它使那些不知道您的數據結構的人更容易理解查詢,並且可以允許您不為所有列提供值:

INSERT INTO titles(col1, col2, col3, col4) VALUES (?, ?, ?, ?)
                --^ -- changae this to your actual column names

暫無
暫無

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

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