python中sql传多个参数写入失败的问题

我想把表格中的数据写进sql里,但总是失败,我试过一下几种方式:
方式一:用字典的方式传递参数,结果是写入失败


 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(%(ww)s)
                     VALUES (%(zz)s))"""
            try:
                # 执行sql语句
                cursor.execute(sql, c_zd)
                # 提交到数据库执行
                db.commit()
                print(z_l1, i2, "写入成功!")
            except:
                # 如果发生错误则回滚
                db.rollback()
                print(z_l1, i2, "写入失败!")

方式二:用占位符的方式,结果是写入失败:

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 (%s)"""
            try:
                # 执行sql语句
                cursor.execute(sql, (z_l1, value1))
                # 提交到数据库执行
                db.commit()
                print(z_l1, i2, "写入成功!")
            except:
                # 如果发生错误则回滚
                db.rollback()
                print(z_l1, i2, "写入失败!")

为了判定问题位置,我做了实验,情况是把sql的表头的信息传进去,能够成功,value写成固定值。这样就能行,把value的参数带上就写入失败,请教,这是什么原因啊,应该怎么写

我觉得你这里是有点问题的

img


这样获取可能会拿到空值或其他不是字符串的类型,无法直接插入到 SQL就会提示报错
value参数不用具体,改成?试一试

sql = """INSERT INTO py_xl_sql(%s)
         VALUES (?)"""
cursor.execute(sql, (z_l1, value1.strip()))


字典里是wz,你拼接的时候写ww?