Python使用executemany向SQL表插入多行数据报错求助
问题排查与解决方案
报错根源
你传入的参数列表val内的元素不符合executemany的要求:Python 中使用括号包裹单个值时,如果末尾不加逗号,不会被识别为元组,只会被判定为普通字符串。你现在val里的每个元素都是字符串类型,不是要求的列表/元组/Row类型,因此触发类型错误。
修复代码
只需给每个单元素的元组末尾加上英文逗号即可:
query = """INSERT INTO TableTest (Summary) Values (%s)""" val = [ ('SPHXNORF2ASW1',), ('CHNSIRSDB1USAA',), ('NKOLGTPRAVPNVM',), ('STAMHO3WANCEG',), ('SPHXNORWANCEG1',), ('SPHXNORWANCE',), ('STAMHO3WANCEG',) ] cursor = conn.cursor() cursor.executemany(query, val) conn.commit()
补充说明
你也可以选择用列表包裹单个参数,写法如下,效果完全一致:
val = [ ['SPHXNORF2ASW1'], ['CHNSIRSDB1USAA'], # 后续参数同理 ]
内容的提问来源于stack exchange,提问作者Arun Ezhil
相关产品推荐
相关产品推荐

