python实现读取excel写入mysql的小工具详解

yizhihongxing

下面我将详细讲解“python实现读取excel写入mysql的小工具详解”的完整实例教程。

介绍

在实际应用场景中,我们很可能需要将Excel表格中的数据导入到数据库中,其中MySQL是比较常用的关系型数据库。本文将介绍如何使用Python实现读取Excel并将数据写入MySQL的小工具。

需求分析

我们需要实现的功能是将Excel表格的内容批量导入到MySQL中,导入的表格示例如下:

姓名 学科 成绩
张三 数学 90
李四 英语 80
王五 语文 95

导入到MySQL中的表结构如下:

CREATE TABLE `score` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL COMMENT '姓名',
  `subject` varchar(50) NOT NULL COMMENT '学科',
  `score` float NOT NULL COMMENT '成绩',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分数表';

实现步骤

在Python中,我们可以使用pandas库来读取Excel表格的数据,并使用MySQL Connector/Python库来连接MySQL数据库并实现数据批量写入。

具体实现步骤如下:

  1. 安装必要的库

pip install pandas mysql-connector-python

  1. 引入库并连接MySQL数据库

```python
import pandas as pd
import mysql.connector

# 连接数据库
config = {
'host': 'localhost',
'user': 'root',
'password': 'password',
'database': 'test',
'charset': 'utf8mb4'
}
cnx = mysql.connector.connect(**config)
```

  1. 读取Excel表格并转化为DataFrame格式

```python
# 读取Excel表格
data = pd.read_excel('score.xlsx')

# 转化为DataFrame格式
df = pd.DataFrame(data, columns=['姓名', '学科', '成绩'])
```

  1. 批量写入数据到MySQL中

```python
# 获得MySQL游标对象
cursor = cnx.cursor()

# 把DataFrame转换成tuple
tuples = [tuple(x) for x in df.to_numpy()]

# 定义写入MySQL的命令
stmt = "INSERT INTO score(name, subject, score) VALUES (%s, %s, %s)"

# 执行写入操作
cursor.executemany(stmt, tuples)

# 提交更改
cnx.commit()

# 关闭连接
cursor.close()
cnx.close()
```

  1. 最后得到的结果是数据成功写入到了MySQL的score表中。

示例说明

以下是示例1,展示如何读取一个本地的Excel文件score.xlsx中的数据,并将数据写入到MySQL中的score表中。

import pandas as pd
import mysql.connector

# 连接数据库
config = {
    'host': 'localhost',
    'user': 'root',
    'password': 'password',
    'database': 'test',
    'charset': 'utf8mb4'
}
cnx = mysql.connector.connect(**config)

# 读取Excel表格
data = pd.read_excel('score.xlsx')

# 转化为DataFrame格式
df = pd.DataFrame(data, columns=['姓名', '学科', '成绩'])

# 获得MySQL游标对象
cursor = cnx.cursor()

# 把DataFrame转换成tuple
tuples = [tuple(x) for x in df.to_numpy()]

# 定义写入MySQL的命令
stmt = "INSERT INTO score(name, subject, score) VALUES (%s, %s, %s)"

# 执行写入操作
cursor.executemany(stmt, tuples)

# 提交更改
cnx.commit()

# 关闭连接
cursor.close()
cnx.close()

以下是示例2,展示如何读取一个网络上的Excel文件https://example.com/score.xlsx中的数据,并将数据写入到MySQL中的score表中。

import pandas as pd
import requests
import mysql.connector

# 连接数据库
config = {
    'host': 'localhost',
    'user': 'root',
    'password': 'password',
    'database': 'test',
    'charset': 'utf8mb4'
}
cnx = mysql.connector.connect(**config)

# 下载Excel表格
url = 'https://example.com/score.xlsx'
response = requests.get(url)
file = open('score.xlsx', 'wb')
file.write(response.content)
file.close()

# 读取Excel表格
data = pd.read_excel('score.xlsx')

# 转化为DataFrame格式
df = pd.DataFrame(data, columns=['姓名', '学科', '成绩'])

# 获得MySQL游标对象
cursor = cnx.cursor()

# 把DataFrame转换成tuple
tuples = [tuple(x) for x in df.to_numpy()]

# 定义写入MySQL的命令
stmt = "INSERT INTO score(name, subject, score) VALUES (%s, %s, %s)"

# 执行写入操作
cursor.executemany(stmt, tuples)

# 提交更改
cnx.commit()

# 关闭连接
cursor.close()
cnx.close()

以上就是这个小工具的详细实现步骤和示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现读取excel写入mysql的小工具详解 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python基础之值传递和引用传递详解

    Python基础之值传递和引用传递详解 一、概述 在Python中,函数传参的方式有两种:值传递和引用传递。对于初学者而言,这一概念非常重要。 二、值传递(传递不可变类型) 值传递是指在函数调用时,将实际参数的值复制一份放到函数栈内存中,以供函数使用。因此在函数内部对这个参数进行修改,不会对原来的变量造成影响。 例如: def change(a): a = …

    python 2023年5月13日
    00
  • Python实现PDF转Word的方法详解

    Python实现PDF转Word的方法详解 本文介绍了使用Python实现将PDF文件转换为Word文档的详细方法。具体过程如下: 1. 安装Python的相关库 要使用Python实现PDF转Word,我们需要使用几个Python的相关库,包括pdfminer3k和docx。我们可以使用以下命令安装它们: pip install pdfminer3k pi…

    python 2023年6月5日
    00
  • Python使用matplotlib绘制余弦的散点图示例

    下面我来详细讲解使用Python的Matplotlib库绘制余弦函数散点图的完整攻略。需要注意的是,Matplotlib是Python中最为常用的数据可视化库之一,用于绘制各种类型的图表、图形,包括折线图、散点图、直方图、饼图等。 第一步:导入库文件 第一步骤就是引入所需要的库文件,这里我们需要引入matplotlib库,并使用以下命令进行导入: impor…

    python 2023年6月5日
    00
  • python写一个随机点名软件的实例

    下面就是Python写一个随机点名软件的实例的完整攻略。 步骤一:安装所需的库 首先,我们需要安装Python的random库来生成随机数,以及Tkinter库来创建GUI界面。在终端或命令提示符中输入以下命令来安装这些库: pip install random pip install tkinter 步骤二:创建GUI界面 使用Tkinter库来创建GUI…

    python 2023年6月3日
    00
  • Python内置的字符串处理函数整理

    Python内置的字符串处理函数整理 Python 是一种高级编程语言,用于处理数据的同时也支持字符操作。字符串处理是 Python 中常见的操作之一,Python 提供了丰富的内置函数,用于字符串的处理和转换,本文将整理 Python 中常用的字符串处理函数以及使用方法。 函数列表 1. len() len() 函数用于返回字符串的长度,示例如下: str…

    python 2023年6月5日
    00
  • python实现将一个数组逆序输出的方法

    下面是标准的markdown格式文本,详细讲解“python实现将一个数组逆序输出的方法”的完整攻略: 简介 数组是一种非常常见的数据类型,它由相同类型的数据元素构成的有限序列。在Python中,我们可以通过列表(list)来表示数组。实现将一个数组逆序输出,可以通过该列表的reverse()方法,或使用切片语法实现。 reverse()方法 reverse…

    python 2023年6月5日
    00
  • Python实现抓取腾讯视频所有电影的示例代码

    这是一个实现Python爬虫抓取腾讯视频所有电影信息的示例代码,下面是完整攻略: 开发环境配置 首先,需要安装Python开发环境,建议使用Python3版本。另外,我们还需要安装一些第三方库,包括: requests:用于发送HTTP请求和处理响应数据 BeautifulSoup4:用于解析HTML页面 在安装好Python和相应库后,我们可以开始编写爬虫…

    python 2023年5月14日
    00
  • Python random模块制作简易的四位数验证码

    当我们需要在网站中实现验证码功能时,可以使用Python random模块生成随机的四位数码作为验证码。下面我将为大家介绍如何使用Python random模块制作简易的四位数验证码。 1. 导入random模块 在使用Python random模块制作验证码前,我们需要先导入random模块。代码如下所示: import random 2. 生成四位数验证…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部