Python / MySql хорош с cursor.execute, но не cursor.executemany.'Ошибка типа: не все аргументы, преобразованные во время форматирования строки' - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть функция, которая выполняет вход MySQL из CSV-файла.Он импортировал построчно, но я хотел ускорить его и создать большую вставку mysql, используя cussor.executemany.В первой версии кода, которую я использовал в течение 6 месяцев, он зацикливал строку документа строкой, вызывая вставку mysql один раз для каждой строки после разбиения поля этой строкой.Сегодня я изменил функцию для создания списка списков с именем multi_line_rebuild в списке списков, используя cursor.executemany вместо cursor.execute.Я оставил остальной код такой же.Как часть процесса отладки я напечатал multi_line_rebuild прямо перед cursor.executemany, и когда я его отлаживал, он выглядит как хороший список списков.Также, когда я переключаю код обратно, он работает нормально.Но когда я пытаюсь выполнить большую вставку с помощью cursor.executemany, выдается ошибка «Ошибка типа: не все аргументы преобразуются во время форматирования строки».Не уверен, что нужно идти дальше в отладке

Полный набор ошибок:

  • Файл "C: \ Python35 \ lib \ site-packages \ pymysql \ cursors.py", строка 193, в executemany self._get_db (). encoding)
  • Файл "C: \ Python35 \ lib \ site-packages \ pymysql \ cursors.py", строка 209, в _do_execute_many v = значения% escape (следующий (args), conn)
  • Ошибка типа: не все аргументы, преобразованные во время форматирования строки

"" "

def run_query_with_warnings(warn_type, query_string, **kargs):
   cursor = db.cursor()
   cursor.executemany(query_string, kargs['field_split'])


....main function...
query_string = 'INSERT into ' + table_name + ' (' + report_field_list_reformat_mysql + ') VALUES (%s);' % var_string
run_query_with_warnings(1, query_string, field_split=multi_line_rebuild)

 query_string
'INSERT into tbl_rpt_GET_MERCHANT_LISTINGS_DATA_ (`item-name`, '
'`item-description`, `listing-id`, `seller-sku`, `price`, `quantity`, '
'`open-date`, `image-url`, `item-is-marketplace`, `product-id-type`, '
'`zshop-shipping-fee`, `item-note`, `item-condition`, `zshop-category1`, '
'`zshop-browse-path`, `zshop-storefront-feature`, `asin1`, `asin2`, `asin3`, 
''`will-ship-internationally`, `expedited-shipping`, `zshop-boldface`, '
'`product-id`, `bid-for-featured-placement`, `add-delete`, '
'`pending-quantity`, `fulfillment-channel`, `merchant-shipping-group`, '
'`update_time`, `user`, `report_id`) VALUES (%s);'

kargs['field_split']
[[b'Bronze',
  b'',
  b'09234VKV44OX',
  b'KL-RZNQ',
  b'34.9',
  b'',
  b'2019-09-09 14:04:42 PDT',
  b'',
  b'y',
  b'1',
  b'',
  b'',
  b'11',
  b'',
  b'',
  b'',
  b'B0231QB57A',
  b'',
  b'',
  b'',
  b'',
  b'',
  b'B023412315QA',
  b'',
  b'',
  b'',
  b'NA',
  b'Migrated Template',
  '2019-09-21 22:24:17',
 'adam',
 '16728972805018160'],
[b'3 Patches',
  b'',
  b'07223O5PFP5',
  b'Q2-442RI-MA38',
  b'23.73',
  b'',
  b'2019-07-23 19:26:14 PDT',
  b'',
  b'y',
  b'1',
  b'',
  b'',
  b'11',
  b'',
  b'',
  b'',
  b'B02342P7TTW',
  b'',
  b'',
  b'',
  b'',
  b'',
  b'B02342MP7TTW',
  b'',
  b'',
  b'',
  b'NA',
  b'Migrated Template',
  '2019-09-21 22:24:17',
  'adam',
  '16728972805018160']]
...