Массовая вставка дает TypeError: недостаточно аргументов для строки формата - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь сохранить кучу кортежей в MySqlDB.

cursor = cnx.cursor()
query = """INSERT INTO `TableA`
            (`clientid`,
           `createddatetime`,
           `siteid`,...)
        VALUES(%s,%s,%s,...)"""

cursor.executemany(query, listTosave)

Мой listTosave выглядит так:

[('AS0001', '1170', '1', '1', 'Unknown', '442', '1', '2018-05-28 23:00:00', '2018-03-15 11:15:00', '2018-03-15 10:56:00', '2018-05-28 23:18:26', '2018-05-28 23:59:22', '15177.3184', '15185.7562', '8.4378', '1313.0547', '1313.6179', '0.5632', '0.0000', '0.0000', '0.0000', '0.0000', '0.0000', '0.0000', '24.6518', '24.6518', '15101.7062', '0.0', '0.0', '0.0', '24.6563'), (.....)]

При выполнении я получаю

    cursor.executemany(query , listTosave)
  File "/tmp/pymodules/pymysql/cursors.py", line 192, in executemany
  File "/tmp/pymodules/pymysql/cursors.py", line 208, in _do_execute_many
TypeError: not enough arguments for format string

Что я здесь не так делаю?

ps:

  • Моя версия на python 2.7.15.Я передаю правильное количество аргументов в моем списке кортежей
  • Если я использую?вместо знака% s я получаю следующую ошибку TypeError: not all arguments converted during string

Задал вопрос здесь:

TypeError: не все аргументы преобразованы во время форматирования строки Ошибка в кортеже Python

...