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('失败了啊')
可是也没报错呀,为啥没插入成功呢
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']
这种格式的数据就行了
把异常信息打印出来就知道怎么回事了
except Exception, e:
print e
异常被你捕获了,所以没报错
@dudu: 哦,我说咋报错都没有。
捕获的异常时:not all arguments converted during string formatting
是不是因为我插入的是列表不是字符串?
@会发光: 找找看搜索“not all arguments converted during string formatting”
@dudu: 基本都是说字符串有百分号,可是并没有....not enough arguments for format string
@会发光: 可能是某些参数值不能转换为字符串
你把你要执行的sql打印一下就明白了