使用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()
以上提供了一种可行的方式,可能还存在一些问题。仅供参考!