Sie sollten .format()
nicht verwenden um Werte in eine SQL-Abfrage aufzunehmen. Verwenden Sie stattdessen SQL-Parameter:
sql += " WHERE provider IN ({}) GROUP BY date ORDER BY date ASC".format(', '.join(['%s'] * len(providers)))
cursor.execute(sql, providers)
wobei providers
ist die ursprüngliche Liste.
Die Idee ist, eine SQL-Abfrage mit dem in
zu generieren Testen Sie mit der SQL-Parametersyntax, die der Anzahl der Anbieter in Ihrer Liste entspricht:WHERE provider in (%s, %s) ...
für eine Liste mit zwei Anbietern. Ja, die MySQLdb-Sql-Parametersyntax spiegelt die alte Python-Formatierungssyntax wider, ist aber nicht dasselbe.