我有一个函数可以对 csv 文件进行 mysql 导入。它是逐行导入的,但我想加快速度并使用 cussor.executemany 创建更大的 mysql 插入。在我使用了 6 个月的代码的第一个版本中,它将逐行循环文档,在字段拆分该行之后为每一行调用一次 mysql insert。今天我修改了函数来构建一个列表列表,multi_line_rebuild
在列表列表中调用,cursor.executemany
而不是cursor.execute
. 我将其余代码保持不变。作为调试过程的一部分,我multi_line_rebuild
之前确实打印了正确cursor.executemany
的列表,当我调试它时它看起来像一个很好的列表列表。此外,当我将代码切换回来时,它也可以正常工作。但是当我尝试做更大的插入时 cursor.executemany
它会引发错误“TypeError:并非所有参数都在字符串格式化期间转换。” 不确定下一步要调试
全套错误是
- 文件“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 = values % escape(next(args), conn)
- TypeError:字符串格式化期间并非所有参数都转换了
"""
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']]