Курсор ожидает, что параметры будут переданы в виде одной последовательности, поэтому вам нужно объединить - по порядку - поля и списки значений.
itertools.chain()
делает именно это, однако возвращает генератор, и я не уверен, что cursor.execute()
примет это как последовательность параметров. Попытайся. Если это не удалось, оберните его list()
import itertools
sql = 'INSERT INTO media_files (%s, %s, %s, %s ... ) VALUES (%s, %s, %s, %s, ...)'
cursor.execute(sql, itertools.chain(fieldlist, valuelist))
EDIT:
Это решение будет не работать. Это приведет к тому, что имена полей будут экранированы и заключены в кавычки, что приведет к ошибке синтаксиса sql.
Я оставлю этот ответ, так как он может послужить полезным примером, но посмотрите на ответ @ Trent для решения.