Du bør ikke bruge .format()
at inkludere værdier i en sql-forespørgsel. Brug sql-parametre i stedet:
sql += " WHERE provider IN ({}) GROUP BY date ORDER BY date ASC".format(', '.join(['%s'] * len(providers)))
cursor.execute(sql, providers)
hvor providers
er den originale liste.
Ideen er at generere en SQL-forespørgsel med in
test med SQL-parametersyntaks, der matcher antallet af udbydere på din liste:WHERE provider in (%s, %s) ...
for en liste med to udbydere. Ja, MySQLdb sql-parametersyntaksen gentager den gamle python-formateringssyntaks, men er ikke den samme ting.