python中将表格中内容写入mysql时传参有问题

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)

为啥要用字典写法