Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python %d格式:需要数字,而不是STR_Python_Mysql - Fatal编程技术网

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

Python %d格式:需要数字,而不是STR,python,mysql,Python,Mysql,当我使用python将数据大容量插入mysql时,即使我使用“%s”格式化每个单词,我仍然得到一个错误:“%d格式:需要一个数字,而不是STR” 代码: 我通过重新理解错误解决了这个问题:“使用接近‘easy to fight’peak war’、‘133’、‘4’、‘2018-8-31:15’、‘1’’的正确语法,因为对于批量插入,这个%s不能用引号括起来,但是对于单次插入,它是可以的。显示您在这里尝试的代码#SQL插入语句 sql=“插入新浪(主题信息、阅读数量、热门、创建时间、状态)值('

当我使用python将数据大容量插入mysql时,即使我使用“%s”格式化每个单词,我仍然得到一个错误:“%d格式:需要一个数字,而不是STR”

代码:


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

显示您在这里尝试的代码#SQL插入语句 sql=“插入新浪(主题信息、阅读数量、热门、创建时间、状态)值('%s'、'%s'、'%s'、'%s'、'%s')”)”一个元组或者列表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'), ('如懿传', 试一下执行sql语句 cursor.executemany(sql,T)#提交到数据库执行 db.commit()除了:#如果发生错误则回滚 MySQL的表具有预定义的列。确实没有在数字数据列中插入字符串。可以使用%d进行单行插入,但也可以使用%s,例如:“SQL=”INSERT into sa(topfo,rem,toot,creime,sus)\value(“%s',“%d',“%d',“%d',“%s',“%s”)“%\”('如果我说,'121,5,'2018-8-31:15,'1')@NoorJafri这都是字符串格式,在SQL调用之前完成。虽然OP给出了一个以
STR
结尾的错误(不像在我的试验中那样
STR
),但错误消息看起来很像是来自字符串格式本身。而
“%s”%42
工作正常,并给出与
“%d”%42
(即
“42”
)相同的结果。
# 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    |       –