成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python讀excel寫入mysql小工具

luckyyulin / 523人閱讀

摘要:背景需要導(dǎo)入全國(guó)高校名錄到數(shù)據(jù)庫(kù),從教委網(wǎng)站下到了最新的數(shù)據(jù),是格式,需要做一個(gè)工具進(jìn)行導(dǎo)入,想試用一下,說(shuō)干就干。值得注意的一點(diǎn),數(shù)據(jù)庫(kù)連接字段串中要設(shè)定字符編碼,不然默認(rèn)是,寫入會(huì)出錯(cuò)??磥?lái),沒(méi)有不好的工具,只是我們沒(méi)有用好啊

背景

需要導(dǎo)入全國(guó)高校名錄到數(shù)據(jù)庫(kù),從教委網(wǎng)站下到了最新的數(shù)據(jù),是excel格式,需要做一個(gè)工具進(jìn)行導(dǎo)入,想試用一下python,說(shuō)干就干。

庫(kù)

xlrd : excel讀寫庫(kù)

pymysql : mysql數(shù)據(jù)庫(kù)驅(qū)動(dòng)庫(kù),純python打造

re : 正則表達(dá)式庫(kù),核心庫(kù)

前兩個(gè)用pip輕松完成安裝,本人是在mac pro是進(jìn)行的,過(guò)程很順利,以前在mac上裝mysqlclient一直安裝不上,所以一度放棄使用python,但我在linux下安裝mysqlclient卻沒(méi)有任何問(wèn)題。

源代碼

很簡(jiǎn)單的小腳本,留存紀(jì)念。值得注意的一點(diǎn),數(shù)據(jù)庫(kù)連接字段串中要設(shè)定字符編碼,不然默認(rèn)是lanti-1,寫入會(huì)出錯(cuò)。

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的語(yǔ)言,不太習(xí)慣python,想同時(shí)掌握兩種風(fēng)格的編程語(yǔ)言,好痛苦啊。python編程效率的確不錯(cuò),這是我第一次用python寫實(shí)用小程序,連查帶寫帶調(diào)試,一共也就花了一個(gè)來(lái)小時(shí)。python庫(kù)與資料豐富,不愁找不到合適的^_^

數(shù)據(jù)庫(kù)寫入優(yōu)化

早上閑來(lái)無(wú)事,用批量寫入優(yōu)化了一下,任務(wù)秒完成,比一條條寫入快了很多, 比我預(yù)想的差別還要大??磥?lái),沒(méi)有不好的工具,只是我們沒(méi)有用好啊!

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()

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44468.html

相關(guān)文章

  • python入門之excel數(shù)據(jù)到mysql

    摘要:功能將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)練習(xí)使用將的數(shù)據(jù)導(dǎo)入到練習(xí)語(yǔ)句查看創(chuàng)建插入語(yǔ)句創(chuàng)建一個(gè)循環(huán)迭代讀取文件每行數(shù)據(jù)的從第二行開(kāi)始是要跳過(guò)標(biāo)題關(guān)閉游標(biāo)提交關(guān)閉數(shù)據(jù)庫(kù)連接打印結(jié)果我剛導(dǎo)入了除了之外還可以另外的寫操作詞篇暫不贅述對(duì)于的操作有很多有意思的方法, 功能:將Excel數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫(kù) 練習(xí)使用sqlite3 將excel的數(shù)據(jù)導(dǎo)入到mysql 練習(xí)sql語(yǔ)句-查看dochttps:...

    silvertheo 評(píng)論0 收藏0
  • 測(cè)試工具python實(shí)現(xiàn)對(duì)比2個(gè)excel文件匹配數(shù)據(jù)寫入excel

    摘要:測(cè)試業(yè)務(wù)需要現(xiàn)有中有個(gè)分別是的,的,的,如下圖的和都有列,且列數(shù)據(jù)值有部分是一樣的現(xiàn)需要將和匹配生成的,匹配規(guī)則把復(fù)制到的文件中,中的列值取值是和都有列匹配對(duì)應(yīng)的的列值實(shí)現(xiàn)打開(kāi)要匹配的列索引目標(biāo)數(shù)據(jù)列索引的的的的的總行數(shù)的的的總列數(shù)的要匹 測(cè)試業(yè)務(wù)需要: 1.現(xiàn)有a.xlsx a.xlsx中...

    meislzhua 評(píng)論0 收藏0
  • pandas使用

    摘要:寫這篇文章主要是想按照一定的邏輯順總結(jié)一下自己做項(xiàng)目以來(lái)序用到過(guò)的的知識(shí)點(diǎn)雖然官方文檔上各個(gè)方面都寫的很清楚但是還是想自己再寫一份一個(gè)是想作為個(gè)人梳理另外也可以把最經(jīng)常使用的部分拎出來(lái)更清晰一些不定時(shí)更新數(shù)據(jù)的讀數(shù)據(jù)其中是需要的語(yǔ)句是創(chuàng)建的 寫這篇文章,主要是想按照一定的邏輯順總結(jié)一下自己做項(xiàng)目以來(lái),序用到過(guò)的pandas的知識(shí)點(diǎn).雖然pandas官方文檔上各個(gè)方面都寫的很清楚,但是還...

    int64 評(píng)論0 收藏0
  • Pandas技巧大全:含具體代碼實(shí)現(xiàn)

    摘要:查看數(shù)據(jù)的基本統(tǒng)計(jì)信息。用處是用于數(shù)據(jù)讀寫處理更改提取等一系列操作的包,可以說(shuō),所有能實(shí)現(xiàn)的功能,都可以通過(guò)代碼輕松實(shí)現(xiàn),因此,對(duì)于學(xué)習(xí)非常重要。如果在里,需要翻到最低和最右,而且可能由于溢出無(wú)法窮盡可以簡(jiǎn)單的實(shí)現(xiàn)。 放在前面的話? ? ????? ? ? ?? ????????這學(xué)期刻意少...

    netmou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<