问题描述。一张 mysql 表 t,数据类型有字符型字段 field_s,数值型 field_n。 python提供数据源,调用pymysql 包接口写入数据到 t.
一般都会这么做: 插入脚本为insert into t (field_s, field_n)values (%s, %f), (‘s_val’, float(n_val) ) 调用 execute 接口,commit 后提交。调试程序,发现报错:a number is required, not str. 实际项目中由于插入的字段比较多,本以为有些字段类型未对应好,仔细检查后,确认所有字段类型都对应一致。那是什么问题呢?
经过查询发现,插入的所有字段,格式要求一律为 %s, 因此将上面脚本修改为:insert into t (field_s, field_n) values (%s, %s), (‘s_val’, float(n_val) ) 后,问题得到解决。
这是有些奇怪,脚本中为什么输入格式是 %s 的字段,被赋值为 float 型呢? 很别扭!
这就是调用别人写的开源包可能出现的一个困扰,需要完全按照作者的设计规范调用 API.
本文分享自 程序员郭震zhenguo 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有