Python中怎么将CSV文件导入MySQL数据库

本篇文章为大家展示了Python中怎么将CSV文件导入MySQL数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

公司主营业务:成都做网站、网站设计、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出双阳免费做网站回馈大家。

CSV文件导入数据库一般有两种方法:

1、通过SQL的insert方法一条一条导入,适合数据量小的CSV文件,这里不做赘述。

2、通过load data方法导入,速度快,适合大数据文件,也是本文的重点。

样本CSV文件如下:

Python中怎么将CSV文件导入MySQL数据库

总体工作分为3步:

1、用python连接mysql数据库,可参考如何使用python连接数据库?

2、基于CSV文件表格字段创建表

3、使用load data方法导入CSV文件内容

load data语法简介:

LOAD DATA LOCAL INFILE 'csv_file_path' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES

csv_file_path 指文件绝对路径

table_name 指表名称

FIELDS TERMINATED BY ',' 指以逗号分隔

LINES TERMINATED BY '\\r\\n' 指换行

IGNORE 1 LINES 指跳过第一行,因为第一行是表的字段名


下面给出全部代码:

下面给出全部代码:
#导入pymysql方法
import pymysql


#连接数据库
config = {'host':'',
         'port':3306,
         'user':'evdata',
         'passwd':'',
         'charset':'utf8mb4',
         'local_infile':1
         }
conn = pymysql.connect(**config)
cur = conn.cursor()


#load_csv函数,参数分别为csv文件路径,表名称,数据库名称
def load_csv(csv_file_path,table_name,database='evdata'):
   #打开csv文件
   file = open(csv_file_path, 'r',encoding='utf-8')
   #读取csv文件第一行字段名,创建表
   reader = file.readline()
   b = reader.split(',')
   colum = ''
   for a in b:
       colum = colum + a + ' varchar(255),'
   colum = colum[:-1]
   #编写sql,create_sql负责创建表,data_sql负责导入数据
   create_sql = 'create table if not exists ' + table_name + ' ' + '(' + colum + ')' + ' DEFAULT CHARSET=utf8'
   data_sql = "LOAD DATA LOCAL INFILE '%s' INTO TABLE %s FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES" % (csv_filename,table_name)

   #使用数据库
   cur.execute('use %s' % database)
   #设置编码格式
   cur.execute('SET NAMES utf8;')
   cur.execute('SET character_set_connection=utf8;')
   #执行create_sql,创建表
   cur.execute(create_sql)
   #执行data_sql,导入数据
   cur.execute(data_sql)
   conn.commit()
   #关闭连接
   conn.close()
   cur.close()

出现的问题:

我是用win10系统,代码执行时会出现以下错误

ERROR 1148 (42000): The used command is not allowed with this MySQL version.

原因是不支持命令 load data

解决方法:

需要更改下配置文件

在mysql安装目录中找到my.ini配置文件,复制以下内容到文件中

[mysqld]        #服务端配置
local-infle = 1

[mysql]         #客户端配置
local-infile = 1

上述内容就是Python中怎么将CSV文件导入MySQL数据库,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


网站标题:Python中怎么将CSV文件导入MySQL数据库
分享地址:http://hbruida.cn/article/gihcsh.html