Подстановка параметров может использоваться только для передачи столбца значений , а не столбца имен , поэтому нам нужно будет создать список имен столбцов для вставки в текст команды SQL. В частности, нам нужно
- построить строку имен столбцов через запятую
- построить строку заполнителей параметров через запятую
- создать команду INSERT, включая два элемента выше
- создать кортеж (числовых) значений параметров
- выполнить команду
Это будет выглядеть примерно так:
# create environment
# ~~~~~~~~~~~~~~~~~~
data = (
['param_1', 0],
['amp', 0],
['voltage', 1],
['params', 1],
['antenna', 1],
['freq', 0.00011000000085914508]
)
# example code
# ~~~~~~~~~~~~
columns = ','.join([f'"{x[0]}"' for x in data])
print(columns)
# "param_1","amp","voltage","params","antenna","freq"
param_placeholders = ','.join(['%s' for x in range(len(data))])
print(param_placeholders)
# %s,%s,%s,%s,%s,%s
sql = f"INSERT INTO table_name ({columns}) VALUES ({param_placeholders})"
print(sql)
# INSERT INTO table_name ("param_1","amp","voltage","params","antenna","freq") VALUES (%s,%s,%s,%s,%s,%s)
param_values = tuple(x[1] for x in data)
print(param_values)
# (0, 0, 1, 1, 1, 0.00011000000085914508)
cur.execute(sql, param_values)