MySQLdb TypeError: %d format: a number is required

required, not str問題解決

mactanxin 2012-03-23 16:59:46
遇到問題: TypeError: %d format: a number is required, not str
解決辦法: 傳給sql的變量寫對格式就好了. sql裏不須要對對應的變量寫%d,只寫%s就能夠了

遇到問題: (1146, "Table 'database.'table_name'' doesn't exist")
解決辦法: 不用cursur.execute(sql,param)方式,改爲拼串方式寫. str寫成 column = '%s' , int寫成 column = %s. 全部的int不須要加單引號. str須要單引號

sql = "insert into loganalyzer(timespan, id, action, action_num)values(%s,%s,%s,%s)"
for anchor in anchorLogList:
    action = anchor["actions"]
    nowTime = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))

    data=(nowTime, anchor["userId"], "playTime", action["playTime"])
    bufferData.append(data)
    number=number+1
    if number>100:
        cursor.executemany(sql,bufferData)
        db.commit()
        number=0
        bufferData=[]
if number > 0:
    cursor.executemany(sql,bufferData)
    db.commit()
相關文章
相關標籤/搜索