Python3读取Excel数据存入MySQL的方法


Posted in Python onMay 04, 2018

Python是数据分析的强大利器。

利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理。

这里向大家分享python3如何使用xlrd读取excel,并使用Python3操作pymysql模块将数据存入Mysql中,有需要的朋友们一起来看看吧。

前言

pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。

python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。

版本

python >= 3.6

mysql >= 5.7.19

安装

python、mysql的安装这里就不详细述说了,有需要的朋友自行百度

xlrd : 可以使用pip安装也可手动下载源码安装,pip安装:pip install xlrd

pymysql : 可以使用pip安装也可手动下载源码安装, pip安装: pip install xlrd

模块

import xlrd
import pymysql
from datetime import datetime
from xlrd import xldate_as_tuple

读取excel

data = xlrd.open_workbook("D:/sales_data.xls") //读取D盘中名为sales_data的excel表格
table_one = data.sheet_by_index(0)      //根据sheet索引获取sheet的内容
table_two = data.sheet_by_index(1)

创建数据库连接

db = pymysql.connect("localhost", "root", "gaishi123", "sales_data", use_unicode=True, charset="utf8")

gaishi123是mysql的root的密码,sales_data是数据库名

for site in sites:
 # 遍历sheet1
 for nrows_one in range(1, int(table_one.nrows)):
  if table_one.cell_value(nrows_one, 0) == site:
   payday = table_one.cell_value(0, 8)
   date = datetime(*xldate_as_tuple(payday, 0))
   payday = date.strftime('%Y/%m/%d')         # 出票日期
   sales = float(table_one.cell_value(nrows_one, 1))     # 销量
   quantity_ticket = int(table_one.cell_value(nrows_one, 2))   # 票数
   rate_electronic = float(table_one.cell_value(nrows_one, 3))  # 电子直销占比
   sales_thanlastweek = float(table_one.cell_value(nrows_one, 4))  # 销量同比上周
   sales_thanlastyear = float(table_one.cell_value(nrows_one, 5))  # 销量同比去年
   break
 # 遍历sheet2
 for nrows_two in range(1, int(table_two.nrows)):
  if table_one.cell_value(nrows_two, 0) == site:
   session = int(table_two.cell_value(nrows_two, 1))     # 访问量
   rate_conversion = float(table_two.cell_value(nrows_two, 2))  # 转化率
   rate_paysuccess = float(table_two.cell_value(nrows_two, 3))  # 支付成功率
   session_thanlastweek = float(table_two.cell_value(nrows_two, 4)) # 访问量同比上周
   break
 # 将数据存入数据库
 sql = "insert into sales_data(SITE, PAYDAY, SALES, QUANTITY_TICKET, RATE_ELECTRONIC, SALES_THANLASTWEEK," \
   "SALES_THANLASTYEAR, SESSION, SESSION_THANLASTWEEK, RATE_CONVERSION, RATE_PAYSUCCESS)" \
   " values ('%s','%s', %f, %d, %f, %f, %f, %d, %f, %f, %f)" %\
   (site, payday, sales, quantity_ticket, rate_electronic, sales_thanlastweek, sales_thanlastyear,
   session, session_thanlastweek, rate_conversion, rate_paysuccess)
 try:
  # 使用 cursor() 方法创建一个游标对象 cursor
  cursor = db.cursor()
  cursor.execute(sql)
 except Exception as e:
  # 发生错误时回滚
  db.rollback()
  print(str(e))
 else:
  db.commit() # 事务提交
  print('事务处理成功')

以上这篇Python3读取Excel数据存入MySQL的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的True,False条件判断实例分析
Jan 12 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
《与孩子一起学编程》python自测题
May 27 Python
Python 查找list中的某个元素的所有的下标方法
Jun 27 Python
利用python numpy+matplotlib绘制股票k线图的方法
Jun 26 Python
Python Django框架模板渲染功能示例
Nov 08 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
Jan 08 Python
Jupyter notebook快速入门教程(推荐)
May 18 Python
python suds访问webservice服务实现
Jun 26 Python
linux mint中搜狗输入法导致pycharm卡死的问题
Oct 28 Python
python cookie反爬处理的实现
Nov 01 Python
Python线程池与GIL全局锁实现抽奖小案例
Apr 13 Python
详解Django之admin组件的使用和源码剖析
May 04 #Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
May 04 #Python
使用python3+xlrd解析Excel的实例
May 04 #Python
对python中的xlsxwriter库简单分析
May 04 #Python
使用实现XlsxWriter创建Excel文件并编辑
May 04 #Python
Python实现获取前100组勾股数的方法示例
May 04 #Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 #Python
You might like
php创建基本身份认证站点的方法详解
2013/06/08 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
JS解析XML实例分析
2015/01/30 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
Python实现常见的回文字符串算法
2018/11/14 Python
python实现二维数组的对角线遍历
2019/03/02 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
2014年银行信贷员工作总结
2014/12/08 职场文书
《夸父追日》教学反思
2016/02/20 职场文书
深入理解Pytorch微调torchvision模型
2021/11/11 Python
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript