解決python mysql插入int型數據報錯:TypeError: %d format: a number is required, not str


今天在使用python爬取數據並將其寫入mysql數據庫時,使用該如下語句:

       cursor.execute(
                    "insert into comments_p_spider(owner_id,from_name,content,create_time,score,comment_level) values(%d,%s,%s,%s,%f,%s)",
                    (p_id,str(username), str(contentStr), str(create_time),float(score), str(comment_level)))
            conn.commit()

  

報錯如下:

 

TypeError: %d format: a number is required, not str

 

解決方案:The format string is not really a normal Python format string. Youmust always use %s for all fields. 

也就是MySQLdb的字符串格式化不是標准的python的字符串格式化,應當一直使用%s用於字符串格式化。

所以將代碼的sql語句的value格式均改為%s(無論要插入的數據是什么類型),即可正常運行。

        cursor.execute(
                    "insert into comments_p_spider(owner_id,from_name,content,create_time,score,comment_level) values(%s,%s,%s,%s,%s,%s)",
                    (p_id,str(username), str(contentStr), str(create_time),float(score), str(comment_level)))
            conn.commit()

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM