Apenas convertendo meu comentário anterior em uma resposta, pois parecia ser a solução certa :-)
O problema vem de outra linha. Você tem isto:
x = c.execute("SELECT * FROM users WHERE email = (%s)",
(email))
Isso não faz o que você pode pensar que faz. Colocando
email
entre colchetes não faz nada, então a linha é na verdade equivalente a passar cada caractere do que estiver nessa variável em uma lista de caracteres. Se em vez disso você fizer isso: x = c.execute("SELECT * FROM users WHERE email = (%s)",
(email,))
...então você estará passando uma tupla contendo um item,
email
, e deve funcionar melhor.