python 讀取excel文件生成sql文件實(shí)例詳解
python 讀取excel文件生成sql文件實(shí)例詳解
學(xué)了python這么久,總算是在工作中用到一次。這次是為了從excel文件中讀取數(shù)據(jù)然后寫入到數(shù)據(jù)庫(kù)中。這個(gè)邏輯用java來(lái)寫的話就太重了,所以這次考慮通過(guò)python腳本來(lái)實(shí)現(xiàn)。
在此之前需要給python添加一個(gè)xlrd模塊,這個(gè)模塊是專門用來(lái)操作excel文件的。
在mac中可以通過(guò)easy_install xlrd命令實(shí)現(xiàn)自動(dòng)安裝模塊
import xdrlib ,sys
import xlrd
def open_excel(file= a.xlsx'):
try:
data = xlrd.open_workbook(file)#打開(kāi)excel文件
return data
except Exception,e:
print str(e)
def excel_table_bycol(file='a.xlsx',colindex=[0],table_name='Sheet1'):
data = open_excel(file)
table = data.sheet_by_name(table_name)#獲取excel里面的某一頁(yè)
nrows = table.nrows#獲取行數(shù)
colnames = table.row_values(0)#獲取第一行的值,作為key來(lái)使用,對(duì)于不同的excel文件可以進(jìn)行調(diào)整
list = []
#(1,nrows)表示取第一行以后的行,因?yàn)榈谝恍型潜眍^
for rownum in range(1,nrows):
row = table.row_values(rownum)
if row:
app = {}
for i in colindex:
app[str(colnames[i]).encode("utf-8")] = str(row[i]).encode("utf-8")#將數(shù)據(jù)填入一個(gè)字典中,同時(shí)對(duì)數(shù)據(jù)進(jìn)行utf-8轉(zhuǎn)碼,因?yàn)橛行?shù)據(jù)是unicode編碼的
list.append(app)#將字典加入列表中去
return list
def main():
#colindex是一個(gè)數(shù)組,用來(lái)選擇讀取哪一列,因?yàn)橥鵨xcel中的一小部分才是我們需要的
tables = excel_table_bycol(colindex=[1,4],table_name=u'areaCode')
file = open('channel_area_code.sql','w')#創(chuàng)建sql文件,并開(kāi)啟寫模式
for row in tables:
if row['area_code'] != '':
file.write("update table_name set para1='%s' where para2='%s';\n"%(row['para1'],row['para2']))#往文件里寫入sql語(yǔ)句
if __name__=="__main__":
main()
這并非是一個(gè)通用的python腳本,還是需要根據(jù)excel文件的格式作出一些調(diào)整,但是代碼并不復(fù)雜,開(kāi)發(fā)速度也很快,比以前用java是輕松多了。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
python中struct模塊之字節(jié)型數(shù)據(jù)的處理方法
今天小編就為大家分享一篇python中struct模塊之字節(jié)型數(shù)據(jù)的處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
Python selenium如何設(shè)置等待時(shí)間
這篇文章主要為大家詳細(xì)介紹了Python selenium如何設(shè)置等待時(shí)間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
Python搭建Keras CNN模型破解網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn)
這篇文章主要介紹了Python搭建Keras CNN模型破解網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python Django模板之模板過(guò)濾器與自定義模板過(guò)濾器示例
這篇文章主要介紹了Python Django模板之模板過(guò)濾器與自定義模板過(guò)濾器,結(jié)合實(shí)例形式分析了Django框架模板過(guò)濾器與自定義模板過(guò)濾器相關(guān)功能、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-10-10
Python實(shí)現(xiàn)的計(jì)算器功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的計(jì)算器功能,涉及Python四則運(yùn)算、取反、百分比等相關(guān)數(shù)學(xué)運(yùn)算操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04
Python使用Pandas對(duì)比兩列數(shù)據(jù)取最大值的五種方法
本文主要介紹使用 Pandas 對(duì)比兩列數(shù)據(jù)取最大值的五種方法,包括使用 max 方法、apply 方法結(jié)合 lambda 函數(shù)、函數(shù)、clip 方法、where 方法結(jié)合條件賦值,并通過(guò)案例進(jìn)行詳細(xì)說(shuō)明,需要的朋友可以參考下2025-02-02
pytorch如何獲得模型的計(jì)算量和參數(shù)量
這篇文章主要介紹了pytorch如何獲得模型的計(jì)算量和參數(shù)量操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
Django?REST?Framework?(DRF)?項(xiàng)目中實(shí)現(xiàn)JWT的示例代碼
本文主要介紹了Django?REST?Framework?(DRF)?項(xiàng)目中實(shí)現(xiàn)JWT的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02

