2016-06-22 8 views
0
tun

ich versucht habe:TypeError: Nicht alle Argumente wurden während der Formatierung von Zeichenfolgen konvertiert. Was bin ich nicht richtig

sql = "INSERT INTO "+ tablenane + " ("+ ",".join(headers) +") VALUES (" + ",".join(["%s"] * len(headers)) + ")" 

und:

sql = "INSERT INTO "+ tablenane + " ("+ ",".join(headers) +") VALUES (" + ",".join(["?"] * len(headers)) + ")" 

aber immer noch die gleichen Fehler, wenn ich cursor.executemany(sql, dataset)

dataset = [(a,b,c),(d,e,f)] laufen - Eine Liste von Tupeln

Sowohl Spalten als auch Werte sind dynamisch, da dort 40 Spalten stehen. Alle Tabellenspalten sind vom Typ VARCHAR und ich sicherstellen, dass die Daten auf String vor

Einfügung umgewandelt werden

mit Python 2.7 und MySQL

Antwort

0

ich irgendwo gelesen, dass MySQL-Python nicht erlaubt „?“. Alles, was ich fehlte, war die db.commit()

Schluss Abfrage war

sql = "INSERT INTO "+ tablenane +"(" + " " join (Header) +") VALUES (" + "". join ([ '% s'] * len (Header)) + ")"

cursor.executemany (sql, Datensatz)

db.commit(). Obwohl nicht sicher, warum die Einfügung ein Commit benötigt und die Erstellung nicht.

Dank

Verwandte Themen