中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么將CSV文件導入MySQL數據庫

發布時間:2021-07-13 15:31:05 來源:億速云 閱讀:2660 作者:Leah 欄目:大數據

本篇文章為大家展示了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數據庫,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柘城县| 楚雄市| 萝北县| 长春市| 咸宁市| 隆德县| 淳化县| 滨州市| 芷江| 关岭| 庄浪县| 平泉县| 乌恰县| 左贡县| 阜城县| 永吉县| 宁波市| 手游| 高淳县| 类乌齐县| 册亨县| 阳城县| 会理县| 基隆市| 三门峡市| 怀来县| 翁源县| 阜康市| 灵丘县| 友谊县| 安阳县| 宜宾市| 昂仁县| 恭城| 青浦区| 墨玉县| 平顶山市| 巫山县| 视频| 个旧市| 镇宁|