当我使用python将数据批量插入mysql时,即使我使用'%s'格式化每个单词,我仍然得到一个错误:'%d format:a number is required,not 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 | –
1条答案
按热度按时间qxsslcnc1#
我通过重新理解错误解决了这个问题:“正确的语法使用了near'easy to fight'peak war'、'133'、'4'、'2018-8-31:15'、'1')”,因为这个%s不能用引号括起来用于批量插入,但是对于单次插入是可以的。