国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實現讀取excel寫入mysql的小工具詳解

2020-02-16 10:47:33
字體:
來源:轉載
供稿:網友

Python是數據分析的強大利器

利用Python做數據分析,第一步就是學習如何讀取日常工作中產生各種excel報表并存入數據中,方便后續數據處理。
這里向大家分享python如何讀取excel,并使用Python將數據存入Mysql中,有需要的朋友們一起來看看吧。

背景

需要導入全國高校名錄到數據庫,從教委網站下到了最新的數據,是excel格式,需要做一個工具進行導入,想試用一下python,說干就干。


xlrd : excel讀寫庫 pymysql : mysql數據庫驅動庫,純python打造 re : 正則表達式庫,核心庫

前兩個用pip輕松完成安裝,本人是在mac pro是進行的,過程很順利,以前在mac上裝mysqlclient一直安裝不上,所以一度放棄使用python,但我在linux下安裝mysqlclient卻沒有任何問題。

源代碼

很簡單的小腳本,留存紀念。值得注意的一點,數據庫連接字段串中要設定字符編碼,不然默認是lanti-1,寫入會出錯。

import xlrdimport pymysqlimport reconn = pymysql.connect(host='database connect address', port=1234, user='root',      passwd='****', db='database name', charset='utf8mb4')p = re.compile(r'/s')data = xlrd.open_workbook('./W020170616379651135432.xls')table = data.sheets()[0]t = table.col_values(1)nrows = table.nrowsfor i in range(nrows): r1 = table.row_values(i) if len(r1[2]) == 10:  cur = conn.cursor()  cur.execute('insert into `university` (`id`, `name`, `ministry`, `city`, `level`, `memo`) /     values (%s, %s, %s, %s, %s, %s)',     (r1[2], p.sub('', r1[1]), p.sub('', r1[3]), p.sub('', r1[4]), r1[5], r1[6]))  conn.commit()  cur.close()conn.close()

心得

寫慣了類C的語言,不太習慣python,想同時掌握兩種風格的編程語言,好痛苦啊。python編程效率的確不錯,這是我第一次用python寫實用小程序,連查帶寫帶調試,一共也就花了一個來小時。python庫與資料豐富,不愁找不到合適的^_^

數據庫寫入優化

早上閑來無事,用批量寫入優化了一下,任務秒完成,比一條條寫入快了很多, 比我預想的差別還要大。看來,沒有不好的工具,只是我們沒有用好啊!

import xlrdimport pymysqlimport reconn = pymysql.connect(host='database connect address', port=1234, user='root',      passwd='****', db='database name', charset='utf8mb4')p = re.compile(r'/s')data = xlrd.open_workbook('./W020170616379651135432.xls')table = data.sheets()[0]t = table.col_values(1)nrows = table.nrowsops = []for i in range(nrows): r1 = table.row_values(i) if len(r1[2]) == 10:  ops.append((r1[2], p.sub('', r1[1]), p.sub('', r1[3]), p.sub('', r1[4]), r1[5], r1[6]))cur = conn.cursor()cur.executemany('insert into `university_copy` (`id`, `name`, `ministry`, `city`, `level`, `memo`) /     values (%s, %s, %s, %s, %s, %s)', ops)conn.commit()cur.close()conn.close()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通榆县| 和林格尔县| 郧西县| 措勤县| 曲水县| 偃师市| 洮南市| 祁东县| 渭源县| 容城县| 宁武县| 西藏| 沙雅县| 涿州市| 曲麻莱县| 正宁县| 乌拉特中旗| 孝感市| 娄烦县| 眉山市| 河东区| 玉山县| 民勤县| 临沭县| 德昌县| 磐石市| 灵丘县| 蒲城县| 达尔| 大连市| 错那县| 曲阜市| 海丰县| 汶川县| 三明市| 南涧| 徐闻县| 彭阳县| 南阳市| 建德市| 绥中县|