摘要:背景需要導入全國高校名錄到數據庫,從教委網站下到了最新的數據,是格式,需要做一個工具進行導入,想試用一下,說干就干。值得注意的一點,數據庫連接字段串中要設定字符編碼,不然默認是,寫入會出錯。看來,沒有不好的工具,只是我們沒有用好啊
背景
需要導入全國高校名錄到數據庫,從教委網站下到了最新的數據,是excel格式,需要做一個工具進行導入,想試用一下python,說干就干。
庫xlrd : excel讀寫庫
pymysql : mysql數據庫驅動庫,純python打造
re : 正則表達式庫,核心庫
前兩個用pip輕松完成安裝,本人是在mac pro是進行的,過程很順利,以前在mac上裝mysqlclient一直安裝不上,所以一度放棄使用python,但我在linux下安裝mysqlclient卻沒有任何問題。
源代碼很簡單的小腳本,留存紀念。值得注意的一點,數據庫連接字段串中要設定字符編碼,不然默認是lanti-1,寫入會出錯。
import xlrd import pymysql import re conn = 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.nrows for 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 xlrd import pymysql import re conn = 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.nrows ops = [] 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()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44468.html
摘要:功能將數據導入到數據庫練習使用將的數據導入到練習語句查看創建插入語句創建一個循環迭代讀取文件每行數據的從第二行開始是要跳過標題關閉游標提交關閉數據庫連接打印結果我剛導入了除了之外還可以另外的寫操作詞篇暫不贅述對于的操作有很多有意思的方法, 功能:將Excel數據導入到MySQL數據庫 練習使用sqlite3 將excel的數據導入到mysql 練習sql語句-查看dochttps:...
摘要:測試業務需要現有中有個分別是的,的,的,如下圖的和都有列,且列數據值有部分是一樣的現需要將和匹配生成的,匹配規則把復制到的文件中,中的列值取值是和都有列匹配對應的的列值實現打開要匹配的列索引目標數據列索引的的的的的總行數的的的總列數的要匹 測試業務需要: 1.現有a.xlsx a.xlsx中...
摘要:查看數據的基本統計信息。用處是用于數據讀寫處理更改提取等一系列操作的包,可以說,所有能實現的功能,都可以通過代碼輕松實現,因此,對于學習非常重要。如果在里,需要翻到最低和最右,而且可能由于溢出無法窮盡可以簡單的實現。 放在前面的話? ? ????? ? ? ?? ????????這學期刻意少...
閱讀 1580·2021-09-26 09:46
閱讀 2665·2021-09-07 09:59
閱讀 2750·2021-09-07 09:59
閱讀 1855·2019-08-30 14:20
閱讀 922·2019-08-26 13:39
閱讀 3172·2019-08-26 12:24
閱讀 771·2019-08-26 11:55
閱讀 1211·2019-08-23 16:49