%d格式:需要数字,而不是str

f1tvaqid  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(342)

当我使用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    |       –
qxsslcnc

qxsslcnc1#

我通过重新理解错误解决了这个问题:“正确的语法使用了near'easy to fight'peak war'、'133'、'4'、'2018-8-31:15'、'1')”,因为这个%s不能用引号括起来用于批量插入,但是对于单次插入是可以的。

相关问题