python-mysql:设置数据类型初探
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-mysql:设置数据类型初探相关的知识,希望对你有一定的参考价值。
pyton3.6,pymysql
pandas.read_csv读取的数据,保存到数据库中。发现data = data.astype(float),data的数据类型还是numpy.float64。
python的数据类型,如str、Int、float等,跟写入mysql时的数据类型没有半毛钱关系。
它们是这样传递的:python的数据类型-->insert语句,转化为字符串-->转换为mysql字段的数据类型。
例如:sql = "insert into tb_name values(‘s%‘, ‘%d‘,‘%0.2f‘)" % (‘Mary‘, 24, 12000.00),传入的数据类型不相同,但是都要在里面加上单引号转为字符串,再导进mysql中。
1 import pymysql 2 import pandas as pd 3 4 dbcon = pymysql.connect(host=‘localhost‘, 5 port=3306, 6 user=‘root‘, 7 passwd=‘1234‘, 8 db=‘model_database‘ 9 ) 10 cursor = dbcon.cursor() 11 data = pd.read_csv(r‘C:\\Users\\zhangjingyu\\PycharmProjects\\MyModels\\knnCluster\\data.csv‘) 12 13 sql1 = ‘DROP TABLE IF EXISTS cluster_data‘ 14 cursor.execute(sql1) 15 sql2 = ‘CREATE TABLE cluster_data(x FLOAT (8,6),y VARCHAR (20))‘ 16 cursor.execute(sql2) 17 18 data_mysql = [] 19 20 data_mysql = [(float(data.iloc[i, 0]), float(data.iloc[i, 1])) for i in range(data.shape[0])] 21 cursor.executemany(‘INSERT INTO cluster_data VALUES(%s,%s)‘, data_mysql) 22 try: 23 dbcon.commit() 24 print(‘success written!‘) 25 except: 26 dbcon.rollback() 27 print(‘failed written!‘) 28 finally: 29 cursor.close() 30 dbcon.close()
结果如下:
实在有必要执行其它操作,倒建议直接在SQL命令里写,自带SQL语句的补全功能。
以上是关于python-mysql:设置数据类型初探的主要内容,如果未能解决你的问题,请参考以下文章
python-mysql超简单银行转账Model(我说了很简单的)