Gewoon mijn eerdere opmerking omzetten in een antwoord, omdat het de juiste oplossing leek :-)
Het probleem komt van een andere lijn. Je hebt dit:
x = c.execute("SELECT * FROM users WHERE email = (%s)",
(email))
Dit doet niet wat je zou denken dat het doet. email
. plaatsen tussen haakjes doet niets, dus de regel is eigenlijk gelijk aan het invoeren van elk teken van wat er in die variabele staat in een lijst met tekens. Als u in plaats daarvan dit doet:
x = c.execute("SELECT * FROM users WHERE email = (%s)",
(email,))
...dan geef je een tuple door met één item, email
, en het zou beter moeten werken.