csv数据快速转换至MySQL数据库(.csv转mysql)

CSV数据快速转换至MySQL数据库

CSV(Comma-Separated Values)文件是一种常用的数据存储格式,它以逗号作为数据分隔符,以换行符作为记录分隔符,因其简单和易读性,被广泛应用于数据交换。而MySQL数据库则是一种常用的关系型数据库,它支持数据表的创建、插入、查询、更新、删除等操作,因其处理大规模数据能力强,被广泛应用于数据分析。

本文将介绍如何通过Python程序快速将CSV数据转换至MySQL数据库。具体步骤如下:

1.安装MySQL Connector

在Python中操作MySQL需要安装相应的库,其中MySQL Connector是官方提供的Python数据库驱动,可通过pip安装,指令如下:

“`python

pip install mysql-connector-python


2.创建MySQL数据库

首先需要创建一个MySQL数据库,可通过MySQL Workbench等工具进行创建,也可通过以下SQL语句进行创建:

```SQL
CREATE DATABASE test;

3.创建数据表

在MySQL数据库中需要创建一个数据表,用于存储CSV文件中的数据。创建数据表的SQL语句如下:

“`SQL

CREATE TABLE test(

ID INT PRIMARY KEY AUTO_INCREMENT,

Name VARCHAR(20),

Age INT,

Gender VARCHAR(10),

Address VARCHAR(50)

);


其中,ID是主键,自动递增;Name、Age、Gender和Address分别表示姓名、年龄、性别和地址等字段。

4.准备CSV文件

在程序中需要指定CSV文件的路径,并将其读入到Python中。以下代码演示了读取CSV文件的方法:

```python
import csv
with open('data.csv', newline='', encoding='utf-8') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row)

在读取CSV文件时,需要指定newline=”和encoding=’utf-8’参数,以避免读入数据时出现编码问题。

5.将数据插入到MySQL数据库中

使用Python的MySQL Connector库将数据插入到MySQL数据库中,以下是示例代码:

“`python

import mysql.connector

import csv

mydb = mysql.connector.connect(

host=”localhost”,

user=”root”,

password=”123456″,

database=”test”

)

mycursor = mydb.cursor()

with open(‘data.csv’, newline=”, encoding=’utf-8′) as csvfile:

reader = csv.DictReader(csvfile)

for row in reader:

sql = “INSERT INTO test (Name, Age, Gender, Address) VALUES (%s, %s, %s, %s)”

val = (row[‘Name’], row[‘Age’], row[‘Gender’], row[‘Address’])

mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, “records inserted.”)


在这段代码中,首先通过MySQL Connector连接到数据库,然后使用DictReader函数读取CSV文件,并针对每一行数据使用INSERT INTO语句插入到数据表中。最后使用commit函数提交插入的数据,并通过rowcount函数获取插入的记录数。

通过以上步骤,便可以实现CSV数据快速转换至MySQL数据库。此外,使用Python的pandas库可以更加快速、简便地进行CSV数据的处理和转换。根据不同的数据量和数据处理需求,可选择不同的方法进行CSV数据转换至MySQL数据库。
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《csv数据快速转换至MySQL数据库(.csv转mysql)》
文章链接:https://zhuji.vsping.com/195895.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。