首页 > 数据库技术 > 详细

解决python mysql插入int型数据报错:TypeError: %d format: a number is required, not str

时间:2020-02-15 23:01:01      阅读:121      评论:0      收藏:0      [点我收藏+]

今天在使用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()

  

解决python mysql插入int型数据报错:TypeError: %d format: a number is required, not str

原文:https://www.cnblogs.com/wang-jx/p/12313865.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!