sql读取excel数据_Python 读取 Excel 数据,并插入到MySQL

这篇博客介绍了如何使用Python的pymysql和xlrd库将Excel数据读取并插入到MySQL数据库中,强调了避免直接用Python做数据入库操作,推荐使用ETL工具或SQL导入功能。文中提供了具体的Python代码示例,包括读取Excel文件、处理日期格式、数据库连接和数据插入步骤。
摘要由CSDN通过智能技术生成

说实话,个人不建议用Python来读取Excel进行入库操作,有条件的话,可以尝试用 ETL 工具,快速导入到MySQL中,或者也可使用 SQL 的导入工具进行。

写本文的目的在于:记录一下之前做过一次这个同类型的东西。也为后面的同期群分析做一个数据准备。

1d975cba5c5b0484f576d02fa90f6d11.png
数据情况,请自行建表!

本文所涉及的数据,详见百度云网盘链接:

链接:https://pan.baidu.com/s/1_CTwkdzFbXNH9iZPoYm2bw

提取码:maz8

Python 代码如下:

import pymysql,xlrd
from datetime import datetime

"""
目标:Python 读取本地 Excel 文件,插入到 MySQL
"""

# 1、读取本地 Excel 数据集
book = xlrd.open_workbook("同期群.xlsx")
sheet = book.sheet_by_name('Sheet1')
print("数据行数:",sheet.nrows,"---","数据列数:",sheet.ncols)

# 2、连接数据库,创建游标,创建插入语句
db = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='zhihu')
cursor = db.cursor()
sql = f"INSERT INTO tongqiqun (nick_name,pay_time,order_status,pay_amount,purchase_quantity,province) VALUES (%s,%s,%s,%s,%s,%s)"

def insert_info():
    # 3、 for 循环迭代读取xls文件每行数据,跳过标题,从第二行开始
    for r in range(1, sheet.nrows):
        nick_name = sheet.cell(r, 0).value      # 用户昵称
        # 支付时间 处理
        # pay_time = sheet.cell(r, 1).value       # 会报错!
        try:
            pay_time = xlrd.xldate_as_tuple(sheet.cell(r, 1).value, 0) # 转成元组格式
            pay_time = datetime(*pay_time) # * 作用:当作位置参数,传参!
        except:
            pay_time = None

        order_status = sheet.cell(r, 2).value   # 订单状态
        pay_amount = sheet.cell(r, 3).value     # 支付金额
        purchase_quantity = int(sheet.cell(r, 4).value)  # 购买数量
        province = sheet.cell(r, 5).value   # 省份

        # 4、组装数据(元组格式),执行sql
        data = (nick_name,pay_time,order_status,pay_amount,purchase_quantity,province)
        cursor.execute(sql,data)

    return None

insert_info()
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值