Python读取CSV并插入到MySQL数据库
作为一名经验丰富的开发者,我将教会你如何使用Python读取CSV文件,并将数据插入到MySQL数据库中。下面是整个流程的步骤表格:
| 步骤 | 描述 |
|---|---|
| 步骤一 | 连接MySQL数据库 |
| 步骤二 | 创建数据库表 |
| 步骤三 | 读取CSV文件 |
| 步骤四 | 插入数据到数据库表 |
步骤一:连接MySQL数据库
在Python中,我们可以使用pymysql库来连接MySQL数据库。首先,我们需要安装该库,可以使用以下命令进行安装:
!pip install pymysql
接下来,我们需要导入pymysql库,并使用connect()方法连接到MySQL数据库。在连接之前,我们需要设置数据库的主机地址、端口号、用户名和密码等信息。
import pymysql
# 设置数据库连接信息
host = 'localhost'
port = 3306
user = 'root'
password = 'password'
database = 'test_db'
# 连接到数据库
connection = pymysql.connect(host=host, port=port, user=user, password=password, database=database)
# 获取游标
cursor = connection.cursor()
步骤二:创建数据库表
在插入数据之前,我们需要先创建一个数据库表来存储CSV文件中的数据。我们可以使用以下SQL语句来创建表:
# 创建数据表
create_table_query = '''
CREATE TABLE IF NOT EXISTS `data` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`age` INT(3) NOT NULL,
`city` VARCHAR(100) NOT NULL,
PRIMARY KEY (`id`)
)
'''
cursor.execute(create_table_query)
请注意,以上SQL语句创建了一个名为data的表,包含了id、name、age和city四个列,其中id是自增主键。
步骤三:读取CSV文件
接下来,我们需要使用Python的内置CSV库csv来读取CSV文件。首先,我们需要导入csv库,并打开CSV文件。
import csv
# 打开CSV文件
with open('data.csv', 'r') as file:
# 创建CSV读取器
reader = csv.reader(file)
# 跳过文件头
next(reader)
# 逐行读取CSV文件中的数据
for row in reader:
# 将数据插入到数据库表中
...
在上述代码中,我们使用了with open()语句打开名为data.csv的CSV文件,并创建了一个CSV读取器reader来读取文件中的数据。我们还通过next(reader)跳过了文件头,以便直接读取数据行。
步骤四:插入数据到数据库表
在读取CSV文件的每一行数据后,我们需要将数据插入到数据库表中。我们可以使用以下代码将数据插入到数据库表中:
# 插入数据到数据库表中
insert_query = '''
INSERT INTO `data` (name, age, city) VALUES (%s, %s, %s)
'''
# 逐行插入数据
for row in reader:
# 提取数据
name = row[0]
age = row[1]
city = row[2]
# 将数据插入到数据库表中
cursor.execute(insert_query, (name, age, city))
# 提交事务
connection.commit()
以上代码使用了INSERT INTO语句将数据插入到数据库表中。我们在循环中逐行读取CSV文件的每一行数据,并提取出name、age和city。然后,我们使用execute()方法执行插入查询,并传入参数(name, age, city),将数据插入到数据库表中。
最后,我们需要使用connection.commit()来提交事务,以确保数据插入到数据库中。
完成以上四个步骤后,我们已经成功将CSV文件中的数据插入到MySQL数据库中了。
结束语
通过上述步骤,我们可以很容易地使用Python读取CSV文件,并将数据插入到MySQL数据库中。这是一个非常常见的数据处理任务,掌握了这个技能,对于数据分析和数据处理工作来说
















