首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python写入数据到MySQL

题图:tom-holmes-511289-unsplash

调用pymysql包,写入数据到表,遇到一个问题。没想到解决方法竟是这样...

问题描述。一张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.

希望,看到的读者,以后使用 pymysql 包时注意到这个字符格式问题。不知,你们遇到过吗?

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180420G1SZOJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券