>  기사  >  백엔드 개발  >  Python3을 사용하여 Excel 데이터를 읽고 MySQL에 저장하는 방법

Python3을 사용하여 Excel 데이터를 읽고 MySQL에 저장하는 방법

不言
不言원래의
2018-05-04 14:24:582814검색

이 글에서는 주로 Python3을 사용하여 Excel 데이터를 읽고 이를 MySQL에 저장하는 방법을 소개합니다. 이제 이를 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

Python은 데이터 분석을 위한 강력한 도구입니다. .

데이터 분석을 위해 Python을 사용하는 첫 번째 단계는 일상 업무에서 생성되는 다양한 Excel 보고서를 읽고 데이터에 저장하여 후속 데이터 처리를 용이하게 하는 방법을 배우는 것입니다.

여기서 python3가 xlrd를 사용하여 Excel을 읽는 방법과 Python3을 사용하여 pymysql 모듈을 작동하여 Mysql에 데이터를 저장하는 방법을 공유하고 싶습니다.

Foreword

pymsql은 MySQL을 운영하는 Python의 모듈로, 사용법은 MySQLdb와 거의 동일합니다. 그러나 현재 pymysql은 python3.x를 지원하고 후자는 버전 3.x를 지원하지 않습니다.

Python은 Excel을 동작시키기 위해 주로 xlrd와 xlwt 두 라이브러리를 사용합니다. 즉, xlrd는 Excel을 읽기 위한 라이브러리이고, xlwt는 Excel을 쓰기 위한 라이브러리입니다. T 버전

python & gt; = 3.6Mysql & GT; = 5.7.19

설치

Python, MySQL 설치는 여기에 자세히 설명되어 있지 않습니다. 직접 필요한 친구는 Baidu입니다. Baidu xlrd: pip를 사용하여 설치하거나 소스 코드를 수동으로 다운로드하여 설치할 수 있습니다. pip install xlrd

pymysql: pip를 사용하여 설치하거나 소스 코드를 수동으로 다운로드하여 설치할 수 있습니다. 설치: pip install

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 루트의 비밀번호이고, 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('事务处理成功')

관련 추천:

파이썬을 사용하여 파일 이름을 읽고 목록을 생성하는 방법

파이썬이 csv 파일을 읽고 파일을 목록에 넣는 방법의 예


위 내용은 Python3을 사용하여 Excel 데이터를 읽고 MySQL에 저장하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.