使用Python将数据插入数据库(一)

假如我现在有一个Excel数据表格,需要将其数据插入MySQL数据库中。数据如下:

对应的Python实现代码如下:

 1 #导入需要使用到的数据模块
 2 import pandas as pd
 3 import pymysql
 4 
 5 #读入数据
 6 filepath = 'E:\_DataSet\catering_sale.xls'
 7 data = pd.read_excel(filepath)
 8 
 9 #建立数据库连接
10 db = pymysql.connect('localhost','root','1234','python_analysis')
11 #获取游标对象
12 cursor = db.cursor()
13 #创建数据库,如果数据库已经存在,注意主键不要重复,否则出错
14 try:
15     cursor.execute('create table catering_sale(num int primary key,date datetime, sale float )')
16 except:
17     print('数据库已存在!')
18 
19 #插入数据语句
20 query = """insert into catering_sale (num, date, sale) values (%s,%s,%s)"""
21 
22 #迭代读取每行数据
23 #values中元素有个类型的强制转换,否则会出错的
24 #应该会有其他更合适的方式,可以进一步了解
25 for r in range(0, len(data)):
26     num = data.ix[r,0]
27     date = data.ix[r,1]
28     sale = data.ix[r,2]
29     values = (int(num), str(date), float(sale))
30     cursor.execute(query, values)
31 
32 #关闭游标,提交,关闭数据库连接
33 #如果没有这些关闭操作,执行后在数据库中查看不到数据 
34 cursor.close()
35 db.commit()
36 db.close()
37 
38 
39 
40 
41 #重新建立数据库连接
42 db = pymysql.connect('localhost','root','1234','python_anylysis')
43 cursor = db.cursor()
44 #查询数据库并打印内容
45 cursor.execute('''select * from catering_sale''')
46 results = cursor.fetchall()
47 for row in results:
48     print(row)
49 #关闭
50 cursor.close()
51 db.commit()
52 db.close()

以上提供了一种可行的方式,可能还存在一些问题。仅供参考!

posted @ 2017-07-31 20:50  君以沫  阅读(42503)  评论(0编辑  收藏  举报