Ich versuche, Zeilen in eine MySQL-Tabelle mit pymysql (Python 3) einzufügen, der entsprechende Code ist der folgende.pymysql: Wie formatieren Sie Typen auf Abfrage?
def saveLogs(DbConnection, tableName, results):
for row in results:
formatStrings = ",".join(["?"]*len(row))
sql = "INSERT INTO %s VALUES (%s);"%(tableName,formatStrings)
DbConnection.cursor().execute(sql, tuple(row))
DbConnection.commit()
Ich verwende "?"
für die Typen, aber ich habe den Fehler not all arguments converted during string formatting
. row
ist eine Liste bestehend aus string
s, int
s und datetime.datetime
. Ich denke, das Problem ist die "?"
, aber ich habe die PEP 249 überprüft und es ist mir immer noch nicht klar, wie ich es tun soll. Irgendwelche Vorschläge?
"% s" nicht String ist? Wie behandelt man Daten und ganze Zahlen? – lithiium
@lithiium Der mysql-Treiber sollte die Typkonvertierungen selbst behandeln, wenn Sie parametrisierte Abfragen durchführen. – alecxe