Я получаю приведенную ниже ошибку, хотя синтаксис SQL кажется правильным. Пожалуйста, помогите.
def create_table(self, **kwargs):
query = "CREATE TABLE IF NOT EXISTS {} ("
comma = r', '
for key, value in kwargs.items():
if key != 'table_name':
query = query + key + ' ' + value + comma
query = query.format(kwargs['table_name']).rstrip(' ,') + ")"
print(query)
return self.cursor.execute(query)
def insert_values(self, *args):
query = r"INSERT INTO {} VALUES ("
comma = r','
for arg in args:
if arg != args[0]:
if type(arg) == str:
query = query + "'" + arg + "'" + comma
else:
query = query + str(arg) + comma
query = query.format(args[0]).rstrip(" ,") + ")"
print(query)
return self.cursor.execute(query)
db.create_table(table_name='store', item='TEXT', quantity='INTEGER', price='REAL')
db.insert_values('store', 'wine glass', 8, 10.5)
Вывод
# CREATE TABLE IF NOT EXISTS store (item TEXT, quantity INTEGER, price REAL)
# INSERT INTO store VALUES ('wine glass',8,10.5)
sqlite3.OperationalError: в хранилище таблиц есть 1 столбец, но предоставлено 3 значения