Ihr Code zum Erstellen der Abfrage versucht nicht, die Zeichenfolgenwerte in Anführungszeichen zu setzen:
cmd = "INSERT INTO resulttest (category, value, timestamp) VALUES (" + key + ", " + str(value) + ", " + str(timestamp) + ")"
Sehen Sie sich die ausgegebene SQL-Anweisung an:
INSERT INTO resulttest (category, value, timestamp) VALUES (composed, 2, 1343186948.8)
Sollte "Kategorie" nicht in Anführungszeichen stehen?
Sie sollten überhaupt keine SQL-Anweisung mit Zeichenfolgenoperationen erstellen. So entstehen SQL-Injection-Schwachstellen. Stattdessen sollten Sie Platzhalter verwenden und die MySQL-Bibliothek damit umgehen lassen:
c.execute(
"INSERT INTO resulttest (category, value, timestamp) VALUES (?, ?, ?)",
(key, value, timestamp)
)