国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python讀excel寫入mysql小工具

luckyyulin / 513人閱讀

摘要:背景需要導入全國高校名錄到數據庫,從教委網站下到了最新的數據,是格式,需要做一個工具進行導入,想試用一下,說干就干。值得注意的一點,數據庫連接字段串中要設定字符編碼,不然默認是,寫入會出錯。看來,沒有不好的工具,只是我們沒有用好啊

背景

需要導入全國高校名錄到數據庫,從教委網站下到了最新的數據,是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

相關文章

  • python入門之excel數據到mysql

    摘要:功能將數據導入到數據庫練習使用將的數據導入到練習語句查看創建插入語句創建一個循環迭代讀取文件每行數據的從第二行開始是要跳過標題關閉游標提交關閉數據庫連接打印結果我剛導入了除了之外還可以另外的寫操作詞篇暫不贅述對于的操作有很多有意思的方法, 功能:將Excel數據導入到MySQL數據庫 練習使用sqlite3 將excel的數據導入到mysql 練習sql語句-查看dochttps:...

    silvertheo 評論0 收藏0
  • 測試工具python實現對比2個excel文件匹配數據寫入excel

    摘要:測試業務需要現有中有個分別是的,的,的,如下圖的和都有列,且列數據值有部分是一樣的現需要將和匹配生成的,匹配規則把復制到的文件中,中的列值取值是和都有列匹配對應的的列值實現打開要匹配的列索引目標數據列索引的的的的的總行數的的的總列數的要匹 測試業務需要: 1.現有a.xlsx a.xlsx中...

    meislzhua 評論0 收藏0
  • pandas使用

    摘要:寫這篇文章主要是想按照一定的邏輯順總結一下自己做項目以來序用到過的的知識點雖然官方文檔上各個方面都寫的很清楚但是還是想自己再寫一份一個是想作為個人梳理另外也可以把最經常使用的部分拎出來更清晰一些不定時更新數據的讀數據其中是需要的語句是創建的 寫這篇文章,主要是想按照一定的邏輯順總結一下自己做項目以來,序用到過的pandas的知識點.雖然pandas官方文檔上各個方面都寫的很清楚,但是還...

    int64 評論0 收藏0
  • Pandas技巧大全:含具體代碼實現

    摘要:查看數據的基本統計信息。用處是用于數據讀寫處理更改提取等一系列操作的包,可以說,所有能實現的功能,都可以通過代碼輕松實現,因此,對于學習非常重要。如果在里,需要翻到最低和最右,而且可能由于溢出無法窮盡可以簡單的實現。 放在前面的話? ? ????? ? ? ?? ????????這學期刻意少...

    netmou 評論0 收藏0

發表評論

0條評論

luckyyulin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<