Vous ne devez pas utiliser .format()
pour inclure des valeurs dans une requête sql. Utilisez plutôt les paramètres sql :
sql += " WHERE provider IN ({}) GROUP BY date ORDER BY date ASC".format(', '.join(['%s'] * len(providers)))
cursor.execute(sql, providers)
où providers
est la liste d'origine.
L'idée est de générer une requête SQL avec le in
testez en utilisant la syntaxe des paramètres SQL correspondant au nombre de fournisseurs dans votre liste :WHERE provider in (%s, %s) ...
pour une liste à deux fournisseurs. Oui, la syntaxe du paramètre MySQLdb sql fait écho à la syntaxe de formatage python à l'ancienne, mais ce n'est pas la même chose.