首页新闻找找看学习计划

pymysql没插入成功也没报错cursor.execute

0
[已解决问题] 解决于 2018-07-30 14:03
 1 def save_db(cons):
 2     db = pymysql.connect(host = '127.0.0.1' , user = 'root' , password = 'root' , port = 3306)
 3     cursor = db.cursor()
 4     sql = 'INSERT INTO quote(jy_time,open_price,high_price,low_price,over_price,zhangdiee,zhangdief,chengjiaol,chengjiaoj,zhenfu,huanshoul) VALUE (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
 5     print('插入中...')
 6     try:
 7         cursor.execute(sql,(cons))
 8         print(cons)
 9         db.commit()
10     except:
11         print('失败了啊')
12         db.rollback()
13     db.close()

代码如上,`cursor.execute(sql,(cons))`是执行失败了么,执行结果:

D:\ProgramData\************\python.exe E:/*******/project/test/test.py
插入中...
失败了啊
插入中...
失败了啊
插入中...

明显是try失败了,然后就print('失败了啊')

可是也没报错呀,为啥没插入成功呢

会发光的主页 会发光 | 菜鸟二级 | 园豆:266
提问于:2018-07-27 10:05
< >
分享
最佳答案
0
try:
         cursor.execute(sql,(cons))

这一句执行失败了,原因是cons格式化的不对。

后来把cons格式化成:

cons = ['***','***','2018-07-30','9','20','8','8.9','-0.2','-0.2','85555','8.9','-0.2','1.5']

这种格式的数据就行了

会发光 | 菜鸟二级 |园豆:266 | 2018-07-30 14:02
其他回答(2)
0

把异常信息打印出来就知道怎么回事了

except Exception, e:
    print e
dudu | 园豆:41286 (高人七级) | 2018-07-27 10:12

异常被你捕获了,所以没报错

支持(0) 反对(0) dudu | 园豆:41286 (高人七级) | 2018-07-27 10:13

@dudu: 哦,我说咋报错都没有。

捕获的异常时:not all arguments converted during string formatting 

是不是因为我插入的是列表不是字符串?

支持(0) 反对(0) 会发光 | 园豆:266 (菜鸟二级) | 2018-07-27 10:20

@会发光: 找找看搜索“not all arguments converted during string formatting

支持(0) 反对(0) dudu | 园豆:41286 (高人七级) | 2018-07-27 10:29

@dudu: 基本都是说字符串有百分号,可是并没有....not enough arguments for format string

支持(0) 反对(0) 会发光 | 园豆:266 (菜鸟二级) | 2018-07-27 16:13

@会发光: 可能是某些参数值不能转换为字符串

支持(0) 反对(0) dudu | 园豆:41286 (高人七级) | 2018-07-27 17:09
0

你把你要执行的sql打印一下就明白了

DanBrown | 园豆:1496 (小虾三级) | 2018-07-30 08:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册