You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python2.7连接MySQL5.5执行插入操作报TypeError错误如何解决

Python2.7连接MySQL5.5插入报错修复方案

错误原因排查

你遇到的TypeError: not all arguments converted during string formatting报错由两个语法错误导致:

  • SQL语句中第三个占位符符号错误,你误写为$s,MySQLdb的参数占位符统一使用%s
  • 报错堆栈显示你实际运行的代码中,execute第二个参数写的是( article ):仅用括号包裹变量不会被Python识别为元组,会直接把article作为单个变量传入,无法匹配3个占位符,单元素元组需要加后缀逗号写成(article,),你拆分三个字段的写法也要确保article确实包含3个对应元素。

修正后代码

import MySQLdb


def connect(channeldict):
    return MySQLdb.connect('localhost','XXXXXX', 'XXXXXXXXXX','test')

def outcommunicate(channeldict,dbconnection,db_object):
    cur = dbconnection.cursor()
    
    for article in db_object:
        # 修正占位符符号:把$s改成%s
        cur.execute("""INSERT INTO ccode (ccodeid,leftcode,rightcode) 
                    VALUES (%s, %s, %s)""", 
                    ( article[0] , article[1] , article[2] ) )
        print 'in channel:', article

    # 提交事务
    dbconnection.commit()

    cur.close()

def disconnect(channeldict,dbconnection):
    dbconnection.close()

额外验证项

如果修改后仍报错,可以做如下检查:

  • 打印len(article)确认每一条article都有3个元素,不会出现索引越界
  • 确认运行的是修改后的代码,不是Python缓存的旧版本代码

内容的提问来源于stack exchange,提问作者hireindian privateLtd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:54:02