Я пытаюсь автоматически создать довольно большие таблицы базы данных sqlite, которые все имеют не менее 50 столбцов.Имена столбцов уже доступны в разных списках.Используя .format, я почти сделал это.Единственный открытый вопрос - это предопределение количества заполнителей для "{}" из длины списка имен.См. Пример кода ниже.
import sqlite3
db_path = "//Some path/"
sqlite_file = 'index_db.sqlite'
conn = sqlite3.connect(db_path + sqlite_file)
c = conn.cursor()
db_columns=['c1','c2','c3','c4','c5']
#This code is working
c.execute("create table my_table1 ({}, {}, {}, {}, {})" .format(*db_columns))
#This code doesn't work
c.execute("create table my_table2 (" + ("{}, " * 5)[:-2] + ")" .format(*db_columns))
#Following error appears
OperationalError: unrecognized token: "{"
#--> This even that the curly brackets are the same as in my_table1
print("create table my_table2 (" + ("{}, " * 5)[:-2] + ")")
#Output: create table my_table2 ({}, {}, {}, {}, {})
c.execute("INSERT INTO my_table1 VALUES (?,?,?,?,?)", (11, 111, 111, 1111, 11111))
conn.commit()
c.close
conn.close()
Есть ли способ решить эту проблему для my_table2?Или есть лучший способ динамически создавать имена столбцов из списка?
Ps Это внутренняя база данных, поэтому у меня нет проблем с безопасностью из-за динамического использования переменных в качестве имен.
Заранее спасибо!Тимур