Python 读取千万级数据自动写入 MySQL 数据库

Python 读取千万级数据自动写入 MySQL 数据库

本文将讲解如何使用 Python 读取千万级数据,并将读取的数据自动写入 MySQL 数据库的过程。

确认准备工作

在开始执行代码之前,需要先完成以下准备工作:

  1. 安装 MySQL 和 Python 的 MySQL 连接库 pymysql,可以直接使用 pip 安装:

pip install pymysql

  1. 准备好要读取的数据文件,以 .csv 格式为例,放在本地某个路径下。

读取数据

程序的第一步是要读取数据文件。我们可以使用 Python 标准库中的 csv 模块来读取 .csv 格式的数据文件。

示例代码如下:

import csv

with open('/path/to/data.csv', 'r') as f:
    reader = csv.reader(f)
    for line in reader:
        print(line)

上述代码中,我们打开了一个 .csv 文件,并使用 csv 模块的 reader 函数创建了一个 reader 对象。然后我们遍历了 reader 对象,对于每一行数据,我们使用 print 函数输出了其内容。

连接 MySQL 数据库

接下来,我们需要使用 Python 来连接 MySQL 数据库。我们可以使用 pymysql 模块来完成这个任务。

首先,在 MySQL 中创建一个数据库和一张表。可以使用如下的 SQL 语句:

CREATE DATABASE IF NOT EXISTS test_db;
USE test_db;

CREATE TABLE IF NOT EXISTS test_table (
    id int(11) NOT NULL,
    col1 varchar(255) NOT NULL,
    col2 varchar(255) NOT NULL,
    col3 varchar(255) NOT NULL,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

然后,我们可以使用如下的 Python 代码连接到 MySQL,并创建一个 cursor 对象,用来执行 SQL 语句:

import pymysql

# 连接数据库
conn = pymysql.connect(
    host='localhost',
    port=3306,
    user='your_username',
    password='your_password',
    db='test_db',
    charset='utf8mb4')

# 创建 cursor 对象
cursor = conn.cursor()

请将代码中的 your_usernameyour_password 替换为你自己的 MySQL 用户名和密码。

插入数据

接下来,我们需要将从数据文件中读取的数据插入到 MySQL 数据库中。可以使用如下的 Python 代码来实现:

import csv
import pymysql

# 连接数据库
conn = pymysql.connect(
    host='localhost',
    port=3306,
    user='your_username',
    password='your_password',
    db='test_db',
    charset='utf8mb4')

# 创建 cursor 对象
cursor = conn.cursor()

# 读取数据并插入数据库
with open('/path/to/data.csv', 'r') as f:
    reader = csv.reader(f)
    for line in reader:
        sql = "INSERT INTO test_table (id, col1, col2, col3) VALUES (%s, %s, %s, %s)"
        cursor.execute(sql, (line[0], line[1], line[2], line[3]))

# 提交事务
conn.commit()

# 关闭 cursor 对象和数据库连接
cursor.close()
conn.close()

上述代码中,我们首先连接到了 MySQL 数据库,并创建了一个 cursor 对象。然后我们读取了数据文件,并遍历了 reader 对象,从而将每一行数据插入到 MySQL 数据库中。

需要注意的是,我们在 SQL 语句中使用了占位符 %s,同时将插入数据对应的参数作为元组传递给 cursor.execute 函数。这样可以避免 SQL 注入等安全问题。

结论

本文介绍了如何使用 Python 读取千万级数据,并将读取的数据自动写入到 MySQL 数据库的过程。需要注意的是,如果文件过大,可能需要使用分块读取的方式来避免内存溢出等问题。

同时,在实际使用中,还需要考虑到数据类型、保证数据的完整性和安全性等方面的问题。本文仅介绍了一个简单的实现过程,具体实现还需根据实际情况调整。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 读取千万级数据自动写入 MySQL 数据库 - Python技术站

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

相关文章

  • 在pandas DataFrame中对行进行排序

    在pandas DataFrame中对行进行排序一般使用 sort_values 方法。下面是详细的操作步骤和实例说明: 1. 创建DataFrame 首先,我们需要创建一个DataFrame示例。这里我们使用 pandas 库自带的 read_csv 方法从csv文件中读取数据并创建DataFrame。 import pandas as pd df = p…

    python-answer 2023年3月27日
    00
  • Pandas中八个常用option设置的示例详解

    首先,我们需要了解什么是Pandas中的option设置。Pandas有很多可以配置的选项,这些选项可以通过Pandas的API进行设置,用于修改默认的行为或者根据需要调整输出。选项可以被设置为具体的值,比如True或False等等。 一般来说,正确的设置选项可以帮助我们更加方便的进行数据处理和分析,因此,学会使用Pandas的option选项可以使我们更加…

    python 2023年5月14日
    00
  • Python Pandas pandas.read_sql函数实例用法

    Python Pandas pandas.read_sql函数实例用法 简介 pandas.read_sql函数是pandas库的一个功能强大的读取SQL查询结果的函数。通过这个函数,可以轻松地将SQL语句查询结果转换为pandas DataFrame(数据框)形式,方便进一步地数据处理与分析。 基本语法 pandas.read_sql(sql, con, …

    python 2023年5月14日
    00
  • Python Pandas实现DataFrame合并的图文教程

    下面我将按照标准的markdown格式,详细讲解“Python Pandas实现DataFrame合并的图文教程”的完整攻略。 一、背景介绍 在数据处理中,我们常常需要将多个数据源的信息进行合并,以进行更为全面的分析,而Pandas的DataFrame就提供了多种合并的方法。 二、DataFrame合并的方法 Pandas提供了concat、merge和jo…

    python 2023年5月14日
    00
  • python pandas loc 布尔索引示例说明

    Python是一种强大的编程语言,可以用来进行数据分析和处理。Python中的pandas库是一个非常有用的数据分析工具,特别是在进行数据清洗和整理时。 在pandas中,loc方法提供了一种方便的方法来通过标签或布尔索引获取pandas DataFrame的数据子集。本文将详细介绍如何使用loc方法进行布尔索引,同时提供两个示例说明。 布尔索引 布尔索引是…

    python 2023年5月14日
    00
  • 如何在Pandas中为数据框架添加空列

    为Pandas中的数据框添加空列可以通过以下步骤: 利用Pandas的DataFrame方法创建数据框; 使用DataFrame的assign方法为数据框添加空列; 使用赋值语句给空列赋值。 下面的例子演示了如何为数据框添加空列: import pandas as pd # 创建一个包含两列数据的数据框 data = { ‘col1’: [1, 2, 3],…

    python-answer 2023年3月27日
    00
  • 在Pandas中编写自定义聚合函数

    在Pandas中,我们可以使用自定义聚合函数来对数据进行计算和分析。自定义聚合函数是指我们定义的一个函数,该函数可以接收一个DataFrame或Series对象,并返回一个聚合后的结果。 下面是一个自定义聚合函数的例子: import pandas as pd def my_agg(x): return x.mean() + x.std() df = pd.…

    python-answer 2023年3月27日
    00
  • 用Pandas精简数据输入

    Pandas是一个Python的数据分析库,可进行快速、灵活、富有表现力的数据操作。在数据输入方面,Pandas提供了多种读取数据的方式,包括从文件读取、从数据库读取、从API接口读取等。这里我们将重点介绍如何用Pandas精简数据输入,提高数据处理效率。 1. 读取文件 Pandas提供了多种读取文件的方式,包括读取csv、excel、json等格式的文件…

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