pymysql 插入typeError("a bytes-like object is required异常解决办法

最近在python3.5下用pymysql插入数据遇到TypeError("a bytes-like object is required, not 'int'",) ,pymysql TypeError: must be real number, not str类似错误,网上查询找不到原因与解决办法。

连日来经分析摸索,终于搞定了。举例说明 CREATE TABLE IF NOT EXISTS `day_price` (
  `symbol` varchar(8) NOT NULL,
  `price_date` date NOT NULL,
  `open_price` decimal(8,2) DEFAULT NULL,
  `high_price` decimal(8,2) DEFAULT NULL,
  `low_price` decimal(8,2) DEFAULT NULL,
  `close_price` decimal(8,2) DEFAULT NULL,
  `adj_close_price` decimal(8,2) DEFAULT NULL,
  `volume` bigint(20) DEFAULT NULL,
  `amount` bigint(20) DEFAULT NULL,   
  PRIMARY KEY `index_price_date` (`price_date`,`symbol`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;    当value里面amount=1234.0类似值会出现第一种错误,当`close_price`=12.65666类似值时会出现第二类错误。

解决办法很简单 int(row[1]['Amount'],"%.2f"%(row[1]['Close']) 取整、精度一致即可。不得不说,pymysql很弱,直接生成的sql可以插入数据库,但只是精度不一致,

mysql会自动处理,pymysql做了画蛇添足的检测导致插入失败。

猜你喜欢

转载自blog.csdn.net/lwhsyit/article/details/79984389