python 中将表格中的值写入到mysql表中,代码如下:
value1 = str(sht[f'{z_l1}{i2}'].value)
# SQL 插入语句
print('value1:', value1)
""" c_zd = {
'wz': z_l1,
'zz': '1'
}"""
sql = """INSERT INTO py_xl_sql(%s) VALUES (?)""" % (z_l1, value1,)
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print(z_l1, i2, "写入成功!")
except:
报错如下:
ncolumns: 5
A 1
Traceback (most recent call last):
File "D:\py-xlwings\main.py", line 218, in
sql = """INSERT INTO py_xl_sql(%s) VALUES (?)""" % (z_l1, value1,)
TypeError: not all arguments converted during string formatting
value1: 标题
进程已结束,退出代码1
问题找到了,mysql建表的时候直接类型写的char,长度默认是1,写入数据超过1导致写入失败。修改一下长度即可。
该回答引用chatgpt:
换这个试试
sql = "INSERT INTO py_xl_sql ({}) VALUES (%s)".format(z_l1)
为啥要用字典写法