Python 从 CSV 读数据到 MySQL 的实例
本文将分享如何使用 Python 读取 CSV 文件并将数据存储到 MySQL 数据库中的完整攻略。我们将使用 Python 中的 Pandas 库读取和处理 CSV 文件,并使用 PyMySQL 库将数据写入到 MySQL 数据库中。
步骤1:准备工作
首先,需要安装以下两个库:
pip install pandas
pip install pymysql
步骤2:创建数据库表
在 MySQL 中创建一个表,确保其包含 CSV 文件中列具有相同的名称和数据类型。以下是一个示例表:
CREATE TABLE test_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT(11) NOT NULL,
PRIMARY KEY (id)
)
步骤3:读取 CSV 文件
在 Python 中使用 Pandas 库读取 CSV 文件。
示例1:
import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())
此代码将读取名为 data.csv
的 CSV 文件。 df.head()
用于仅显示前五行数据。您可以根据需要使用其他选项来更改其默认值。
示例2:
import pandas as pd
df = pd.read_csv('data.csv', sep=';', header=None)
print(df.head())
此代码将读取名为 data.csv
的 CSV 文件,并在分号分隔符下处理数据。header=None
选项将告诉 Pandas 库没有标题行,以便数据正确处理。
步骤4:将数据写入 MySQL
使用 PyMySQL 库将 Pandas 数据框中的数据写入到 MySQL 数据库中。将必要信息(MySQL 连接详细信息)添加到您的 Python 代码中。以下是一个示例:
import pandas as pd
import pymysql
# 设置数据库连接信息
db_connection = pymysql.connect(host='localhost',
user='root',
password='rootpassword',
db='test_db')
# 读取 CSV 文件
df = pd.read_csv('data.csv')
try:
# 获取 cursor 游标
with db_connection.cursor() as cursor:
# 构建 SQL 语句并执行
for index, row in df.iterrows():
sql = "INSERT INTO test_table (name, age) VALUES (%s, %s)"
cursor.execute(sql, (row['Name'], row['Age']))
# 提交数据
db_connection.commit()
finally:
# 关闭数据库连接
db_connection.close()
该代码将读取名为data.csv
的 CSV文件,并将其插入到用于创建数据库表的名称为“test_table”的表中的“Name”和“Age”列中。您可以根据需要更改列名和表名。
这是一个带有错误处理的完整实例。请确保在执行此代码之前更改所需的 MySQL 连接信息。
import pandas as pd
import pymysql
# 设置数据库连接信息
db_connection = pymysql.connect(host='localhost',
user='root',
password='rootpassword',
db='test_db')
# 读取 CSV 文件
try:
df = pd.read_csv('data.csv')
# 获取 cursor 游标
with db_connection.cursor() as cursor:
# 构建 SQL 语句并执行
for index, row in df.iterrows():
sql = "INSERT INTO test_table (name, age) VALUES (%s, %s)"
cursor.execute(sql, (row['Name'], row['Age']))
# 提交数据
db_connection.commit()
except Exception as e:
# 输出错误信息
print("Error! ", str(e))
finally:
# 关闭数据库连接
db_connection.close()
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 从csv读数据到mysql的实例 - Python技术站