Я использую этот бит кода для подачи некоторых данных, которые я проанализировал, с веб-страницы в базу данных MySQL
c=db.cursor()
c.executemany(
"""INSERT INTO data (SID, Time, Value1, Level1, Value2, Level2, Value3, Level3, Value4, Level4, Value5, Level5, ObsDate)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""",
clean_data
)
Проанализированные данные выглядят так (таких строк несколько сотен)
clean_data = [(161,00:00:00,8.19,1,4.46,4,7.87,4,6.54,null,4.45,6,2010-04-12),(162,00:00:00,7.55,1,9.52,1,1.90,1,4.76,null,0.14,1,2010-04-12),(164,00:00:00,8.01,1,8.09,1,0,null,8.49,null,0.20,2,2010-04-12),(166,00:00:00,8.30,1,4.77,4,10.99,5,9.11,null,0.36,2,2010-04-12)]
если я жестко закодирую данные, как указано выше, MySQL принимает мой запрос (за исключением некоторых споров по поводу форматирования)
но если вместо этого переменная clean_data определена как результат анализа кода, например:
cleaner = [(""" $!!'""", ')]'),(' $!!', ') etc etc]
def processThis(str,lst):
for find, replace in lst:
str = str.replace(find, replace)
return str
clean_data = processThis(data,cleaner)
тогда я получаю страшное «Ошибка типа: недостаточно аргументов для строки формата»
После нескольких часов игры с опциями форматирования (я новичок в этом), я запутался ... в чем разница между жестко закодированными данными и результатом процесса? 1014 *
Любая идея с благодарностью ...