首页 > 代码库 > python-mysql:设置数据类型初探

python-mysql:设置数据类型初探

  pyton3.6,pymysql

  pandas.read_csv读取的数据,保存到数据库中。发现data = http://www.mamicode.com/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 = http://www.mamicode.com/pd.read_csv(rC:\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()
View Code

  结果如下:

  技术分享

  实在有必要执行其它操作,倒建议直接在SQL命令里写,自带SQL语句的补全功能。

python-mysql:设置数据类型初探