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

下面我将详细讲解“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字符串处理的8招秘籍(小结)

    下面是“Python字符串处理的8招秘籍(小结)”的完整攻略。 1. 字符串长度 字符串长度可以使用len()函数进行计算。例如,以下代码可以获取字符串str的长度: str = "Hello World" s_len = len(str) print(s_len) # 输出 11 2. 字符串拼接 可以使用加号(+)进行字符串拼接。以下…

    python 2023年6月5日
    00
  • 使用Python编写简单网络爬虫抓取视频下载资源

    本文将介绍如何使用Python编写简单网络爬虫抓取视频下载资源的完整攻略。以下是本文将介绍的: 使用requests库发送HTTP请求 使用BeautifulSoup库解析页面内容 爬取视频下载资源 示例说明 使用requests库发送HTTP请求 在Python中,我们可以使用requests库发送HTTP请求。以下是使用requests库发送HTTP请求…

    python 2023年5月14日
    00
  • 详解字符串在Python内部是如何省内存的

    下面是详解字符串在Python内部是如何省内存的完整攻略: 1. 字符串池 Python字符串内部是通过一种叫做“字符串池”的机制来省内存的。所谓字符串池,就是把所有出现过的字符串都保存起来,下次如果有相同的字符串,就直接返回内存中已经保存的那个字符串的引用,而不需要重新创建一遍。这个池子是全局的,对所有的Python代码都是共享的,因此理论上有可能遇到和预…

    python 2023年6月5日
    00
  • Python中列表的基本操作汇总

    Python中列表的基本操作汇总 在Python编程中,列表是一种非常常用的数据类型,它可以存储多个元素,并且支持各种操作。本文将详细介绍Python中列表基本操作,包括创建、访问、添加、删除、修改、排序和遍历等操作。 列表的创建 在Python中,我们可以使用括号[]或list()函数来创建一个列表。具体来说,我们可以使用方括号[]将多个元素拼接在一起,形…

    python 2023年5月13日
    00
  • python使用prettytable内置库美化输出表格

    下面是详细讲解“python使用prettytable内置库美化输出表格”的完整攻略。 什么是prettytable prettytable是Python中的一个内置库,可以用于以一种标准化的方式输出ASCII表格。它可以将数据转换成表格形式,并支持对表格进行格式化、排序和筛选等操作,是一个非常实用的工具。 安装prettytable 在安装prettyta…

    python 2023年6月3日
    00
  • Python中的zipfile模块使用详解

    Python中的zipfile模块使用详解 在Python中,zipfile模块提供了一种用于读取和创建ZIP文件的方法。本文将详细解Python中的zipfile模块使用,包括如何读取ZIP文件、如何创建ZIP文件、如何添加文件到ZIP文件中、如何解ZIP文件等。 读取文件 要读取ZIP文件,我们使用zipfile模块中的ZipFile类。以下是一个示例代…

    python 2023年5月13日
    00
  • 在服务器端实现无间断部署Python应用的教程

    在服务器端实现无间断部署Python应用的教程 在服务器端实现无间断部署Python应用可以确保应用在更新时不会中断服务,从而提高应用的可用性。本文将详细讲解在服务器端实现无间断部署Python应用的教程,包括使用Nginx和Gunicorn、安装Python虚拟环境、部署Python应用等内容,并提供两个示例。 使用Nginx和Gunicorn 在服务器端…

    python 2023年5月15日
    00
  • Python文件操作和异常处理的方法和技巧

    Python 是一门强大的编程语言,它提供了许多文件操作和异常处理的方法和技巧,本文将详细讲解其中的几个常用方法和技巧。 Python文件操作方法 在 Python 中,我们可以通过以下方法进行文件操作: 打开文件 我们可以使用 open() 函数打开要操作的文件。其用法如下: f = open(‘file.txt’, ‘r’) 其中,’file.txt’ …

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