这是在执行python脚本的时候遇到的错误,疯狂的报警告警告,一坨一坨的,看着实在不雅观,因此,还是解决一下比较好。本篇主要讲述的是错误的发现以及如何忽略警告警告。
报错如下:
<>以前test.py: 531:警告:,Duplicate entry & # 39;把# 39;,for key & # 39; idx_user_city& # 39; ,cursor_build.execute (insert_build_sql) test.py: 531:警告:,Duplicate entry & # 39; 367 - 2 & # 39;, for key & # 39; idx_user_city& # 39;根据报错,我们知道错误是因为插入数据的时候主键重复造成的。不过已经用了插入忽略来插入了,怎么还是会报错呢?
后来搜索发现,插入忽略的插入方式,虽然能避免异常错误,但是确实会抛出异常。只是平时没有像这次把遭到展示出来了,为什么会展示呢?
把异常转化错误为捕获会报错:
<>以前Traceback (most recent call 最后): ,File “test.py",, line 548年,拷贝& lt; module> ,main () ,File “test.py",, line 533年,主拷贝 ,cursor_build.execute (insert_build_sql) ,File “cursors.py",, line 175年,执行拷贝 ,if not  self._defer_warnings: self._warning_check () ,File “/cursors.py",, line 89年,_warning_check拷贝 ,警告(w [1], self.Warning,, 3) _mysql_exceptions.Warning: Duplicate entry & # 39;把# 39;,for key & # 39; idx_user_city& # 39;本地测试是没通过,但是觉得这种方式应该是可行的,碍于时间,选择了下面的屏蔽遭到方式,不过这种转换警告为错误的思路还是很好地,有兴趣的同学可以尝试下。
<>之前得到warnings import  filterwarnings filterwarnings(& # 39;忽略# 39;,,类别=MySQLdb.Warning)
下面的尝试。除了中只需要正常捕获异常就行。执行py脚本:
[xxx],美元python2.7 test.py 01:44:45 py 完成了
执行成功,查看数据库,也都成功写入,世界都安静了。
更多的 接下来会继续为大家更新。