Вы предоставили плоский список executemany
. Вместо этого метод ожидает вложенную структуру, где каждая внутренняя последовательность представляет набор параметров, добавляемых в запрос.
Итак, вы хотите, чтобы ['P0', 'P1', 'P2', ...]
было [['P0'], ['P1'], ['P2'], ...]
. Вы можете исправить это, добавив квадратные скобки при создании списка, чтобы сделать его вложенным:
toBeAdded = [0]*1000
i = 0
while i < 1000:
toBeAdded[i] = [("P"+str(i+1))] # Note the surrounding square brackets
i += 1
Дополнительная обратная связь
Лучший способ создать свой данные должны были бы использовать for
l oop и избавиться от while
l oop - у вас есть заранее определенное количество итераций, поэтому идиоматический c должен использовать for
, Вам также не нужно инициализировать список заранее.
to_be_added = []
for i in range(1000):
to_be_added.append([("P"+str(i+1))])
Или, используя понимание списка :
to_be_added = [[("P"+str(x+1))] for x in range(1000)]
Вы заметите, что я ' мы удалили camelCase из имени переменной; это соответствует руководству по стилю Python - PEP8