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éž.