2016-10-27 1 views
0

Sie müssen überprüfen, warum der folgende Code einen Fehler für einen einzelnen Platzhalter zurückgibt, dessen Wert aufgefüllt ist über eine Liste; Das Durchlaufen eines Diktats mit zwei Platzhaltern funktioniert jedoch einwandfrei. Ich habe scheinbar ähnliche Fragen gestellt, aber das scheint ein anderes Szenario zu sein. Fehler lautet: cur.execute ('' '', (Punkt,) 'INSERT INTO OR IGNORE Vip_type VALUES (,)?') sqlite3.OperationalError: near ")": SyntaxfehlerPython-Sqlite3: Platzhalter für eine einzelne Variable innerhalb einer for-Schleife einer Liste gibt: sqlite3.OperationalError: near ")": Syntaxfehler

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() 

Antwort

1

Ich vermute, dass , das Problem ist. Versuchen

cur.execute('''INSERT OR IGNORE INTO Vip_type VALUES (?)''', (item,))

statt.

+0

Ich versuchte das auch vor der Buchung aber nicht funktioniert, Fehler hier: cur.execute ('' 'INSERT oder IGNORE IN Vip_type WERTE (?,)' '', (Artikel)) sqlite3.OperationalError: in der Nähe ") ": Syntaxfehler –

+0

Wenn ich Ihren Code ohne die , auf einer Tabelle mit einer Spalte testen, funktioniert es. – CDe

+0

Ich habe eine Tabelle mit zwei Spalten. der erste sollte AUTOINCREMENT als Primärschlüssel und der andere sollte seine Werte aus der oben genannten Tabelle erhalten. Können Sie pls überprüfen mit diesem Tabelle Schema unten: CREATE TABLE WENN NICHT EXISTIERT Vip_type ( vip_id INTEGER NOT NULL PRIMÄR KEY AUTOINCREMENT UNIQUE, vip TEXT) –

Verwandte Themen