У меня более 100 строк данных, и было бы очень неудобно иметь строку для вставки таблицы для каждой строки. Поэтому я пытаюсь как-то ускорить вставку строк в мою базу данных sqlite. Итак, я придумал следующее:
def insert_item(obj):
with db:
c.execute("INSERT INTO Database VALUES (\
:First, :Last, :Item1, :Item2)",
{'First': obj.First,
'Last': obj.Last,
'Item1': obj.Item1,
'Item2': obj.Item2})
obj_1 = ('John', 'Doe', 4, 5)
obj_2 = ('Jane', 'Doe', 6, 8)
...
obj_106 = ('Johnathan', 'Doe', 9, 1)
d = {}
for x in range(1, 107):
row = (d["obj_{0}".format(x)])
insert_item(row)
Однако он вернулся с этой ошибкой:
row = (d["obj_{0}".format(x)])
KeyError: 'obj_1'
Не знаю, что пошло не так, строка возвращает нужное значение, но функция не работает.
Спасибо
Разве словарь
d
не пуст в том месте вашего кода, где вы пытаетесь найти «obj_1»?