Maison  >  Article  >  développement back-end  >  Comment lire des données Excel et les stocker dans MySQL à l'aide de Python3

Comment lire des données Excel et les stocker dans MySQL à l'aide de Python3

不言
不言original
2018-05-04 14:24:582814parcourir

Cet article présente principalement la méthode de lecture des données Excel et de leur stockage dans MySQL avec Python3. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

. Python est un outil puissant pour l'analyse des données.

La première étape dans l'utilisation de Python pour l'analyse des données est d'apprendre à lire divers rapports Excel générés au cours du travail quotidien et à les stocker dans les données pour faciliter le traitement ultérieur des données.

Ici, j'aimerais partager avec vous comment python3 utilise xlrd pour lire Excel et utiliser Python3 pour faire fonctionner le module pymysql afin de stocker des données dans Mysql. Les amis dans le besoin devraient y jeter un œil.

Préface

pymsql est un module en Python qui exploite MySQL, et son utilisation est presque la même que MySQLdb. Mais actuellement, pymysql prend en charge python3.x et ce dernier ne prend pas en charge la version 3.x.

Python utilise principalement les deux bibliothèques xlrd et xlwt pour faire fonctionner Excel, c'est-à-dire que xlrd est une bibliothèque pour lire Excel et xlwt est une bibliothèque pour écrire Excel.

Version

python >= 3.6

mysql >= 5.7.19

Installation

L'installation de python et mysql ne sera pas décrite en détail ici. Les amis dans le besoin peuvent utiliser Baidu

xlrd : Vous pouvez également utiliser. pip pour l'installer. Téléchargez manuellement le code source pour l'installation, installation pip : pip install xlrd

pymysql : Vous pouvez utiliser l'installation pip ou télécharger manuellement le code source pour l'installation, installation pip : pip install 🎜>

Lire Excel
import xlrd
import pymysql
from datetime import datetime
from xlrd import xldate_as_tuple

Créer une connexion à la base de données
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)

gaishi123 est le mot de passe de la racine mysql, sales_data est le nom de la base de données

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

Recommandations associées :

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('事务处理成功')

Comment Python lit les noms de fichiers pour générer une liste


Un exemple de la façon dont python lit un fichier csv et place le fichier dans une liste

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn