python里tuple的坑

錯誤原因

class MysqlManager(object):
    def __init__(self):
        self.host = MYSQL_HOST
        self.user = MYSQL_USER
        self.password = MYSQL_PASSWORD
        self.db = MYSQL_DB
        self.charset = 'utf8'

    def __connect(self):
        return MySQLdb.connect(host=self.host, user=self.user, passwd=self.password, db=self.db, charset=self.charset)
    
    def do_count(self, sql_str, sql_param):
        connect = self.__connect()
        cursor = connect.cursor()
        try:
            cursor.execute(sql_str, sql_param)
            connect.commit()
            return cursor.fetchone()
        except Exception, e:
            print e
            import traceback
            traceback.print_exc()
            # 發(fā)生錯誤時會滾
            connect.rollback()
        finally:
            # 關(guān)閉游標連接
            cursor.close()
            # 關(guān)閉數(shù)據(jù)庫連接
            connect.close()

if __name__ == "__main__":

    mysql_manager = MysqlManager()
    sql = """
            SELECT  COUNT( * ) FROM `merchant_queue` WHERE sMerchantFullName = %s
            """
    params = (
        'JCPenney'
    )
    result = mysql_manager.do_count(sql, params)

結(jié)果老是報異常not all arguments converted during string formatting錯誤,fuck

為什么

打斷點發(fā)現(xiàn)params居然是字符串

image.png

解決方法

原來元組只有元素時候,要加逗號,所以這里的params應(yīng)該這樣

 params = (
        'JCPenney',
    )

然后就,好了。。。哇靠

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容