Konvertiere nur meinen früheren Kommentar in eine Antwort, da es die richtige Lösung zu sein schien :-)
Das Problem kommt von einer anderen Leitung. Sie haben dies:
x = c.execute("SELECT * FROM users WHERE email = (%s)",
(email))
Das tut nicht das, was Sie vielleicht denken. email
eingeben in Klammern tut nichts, also ist die Zeile eigentlich gleichbedeutend damit, jedes Zeichen von dem, was auch immer in dieser Variablen enthalten ist, in einer Liste von Zeichen zu übergeben. Wenn Sie stattdessen Folgendes tun:
x = c.execute("SELECT * FROM users WHERE email = (%s)",
(email,))
... dann übergeben Sie ein Tupel mit einem Element, email
, und es sollte besser funktionieren.