Neměli byste používat .format() pro zahrnutí hodnot do SQL dotazu. Místo toho použijte parametry sql:
sql += " WHERE provider IN ({}) GROUP BY date ORDER BY date ASC".format(', '.join(['%s'] * len(providers)))
cursor.execute(sql, providers)
kde providers je původní seznam.
Cílem je vygenerovat SQL dotaz s in otestujte pomocí syntaxe parametru SQL odpovídající počtu poskytovatelů ve vašem seznamu:WHERE provider in (%s, %s) ... pro seznam dvou poskytovatelů. Ano, syntaxe parametru MySQLdb sql odráží starou syntaxi formátování pythonu, ale není to totéž.