0
値が入力された1つのプレースホルダに対して、リストを介して;ただし、2つのプレースホルダを使用してdictをループするとうまく動作します。私は一見似たような質問をしましたが、これは別のシナリオと思われます。エラーは読む: cur.execute( '' 'INSERT OR Vip_typeのVALUES(、)INTO IGNORE?' ''、(アイテム)) sqlite3.OperationalError:近い ")":構文エラーPython-Sqlite3:リストのforループ内の単一変数のプレースホルダは、次のようになります。sqlite3.OperationalError:near ")":構文エラー
import sqlite3
conn = sqlite3.connect('vip.sqlite')
cur = conn.cursor()
v_lst = ['v1', 'v2', 'v3', 'v4']
for item in v_lst:
cur.execute('''INSERT OR IGNORE INTO Vip_type VALUES (?,)''', (item,))
conn.commit()
cur.close()
conn.close()
投稿する前にそれを試しましたが、うまくいきませんでした。エラー:cur.execute( '' 'INSERTまたはIGNORE INTO Vip_type VALUES(?、)' ''、(item)) sqlite3.OperationalError:near " ":構文エラー –
,
が1列の表にないコードをテストすると、そのコードは機能します。 – CDe私は2つの列を持つテーブルを持っています。最初はAUTOINCREMENTを主キーとして、もう1つは前述の表からその値を取得する必要があります。以下のテーブルスキーマでplsを調べることができます:Vip_type( vip_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE、 vip TEXT) –