当我使用python将数据批量插入到mysql中时,即使我使用'%s‘格式化每个单词,我仍然得到一个错误:"%d格式:需要一个数字,而不是STR“。
代码:
# SQL 插入语句
sql = ("INSERT INTO sina(topic_info, read_num, top_hot,"
" create_time, status)"
" VALUES ('%s', '%s', '%s', '%s', '%s' )"
# 一个tuple或者list
T = ( ('易起鏖战 巅峰之战', 133, 4, '2018-8-31:15', '1'),
('向往的美食', 123, 2, '2018-8-31:15', '1'),
('发际线男孩表情包', 1223, 1, '2018-8-31:15', '1'),
('天坑鹰猎开播', 131, 3, '2018-8-31:15', '1'),
('如懿传', 121, 5, '2018-8-31:15', '1') )
try:
# 执行sql语句
cursor.executemany(sql, T)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# database details
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| topfo | char(30) | NO | | NULL | |
| rm | int(11) | YES | | NULL | |
| tot | int(11) | YES | | NULL | |
| creme | char(20) | YES | | NULL | |
| st*us | char(10) | YES | | NULL | –发布于 2018-08-31 17:09:50
我已经通过重新理解这个错误解决了这个问题:“正确的语法使用near‘容易打’峰值战','133','4','2018-8-31:15','1')",因为这个%s不能用引号括起来用于批量插入,但它可以用于单个插入。
https://stackoverflow.com/questions/52110979
复制相似问题