• tuple
  • comma
  • sql

The asker is trying to execute SQL with a single placeholder and is passing the argument instead of a 1-tuple of arguments to execute. For example with the mysql.connector:

stmt = "SELECT * FROM users WHERE username = %s"
username = ('email@example.com')
result = cursor.execute(stmt, username)

One way to fix is to add the missing comma in order to turn username into a tuple:

username = ('email@example.com',)


cursor.execute(stmt, (username,))

Any sequence should do, so a list would work as well:

cursor.execute(stmt, [username])

The relevant DB-API v2.0 link.