python中常用的各種數(shù)據(jù)庫(kù)操作模塊和連接實(shí)例
工作中,經(jīng)常會(huì)有用python訪(fǎng)問(wèn)各種數(shù)據(jù)庫(kù)的需求,比如從oracle讀點(diǎn)配置文件或者往mysql寫(xiě)點(diǎn)結(jié)果信息之類(lèi)的。
這里列一下可能用到的各個(gè)模塊。
sqlite3: 內(nèi)置模塊
用sqlite,有時(shí)候確實(shí)很方便,我覺(jué)得它確實(shí)做到了宣稱(chēng)的“零配置”。python自2.5版以來(lái),就內(nèi)置了對(duì)sqlite3的支持,使用也非常簡(jiǎn)單,按照文檔上來(lái):
#打開(kāi)db文件,獲得連接
conn = sqlite3.connect('數(shù)據(jù)文件名')
#獲得游標(biāo)
c = conn.cursor()
#執(zhí)行SQL
c.execute('''SQL 片段''')
#如果有對(duì)數(shù)據(jù)的修改操作,那就需要commit一下
conn.commit()
#關(guān)閉游標(biāo)
c.close()
#關(guān)閉連接
conn.close()
另外,關(guān)于sqlite在C和bash下的用法,可以參考為以前的文章。
oracle: cx_Oracle
其實(shí),前面先介紹sqlite3,除了它確實(shí)是個(gè)小數(shù)據(jù)庫(kù)以外,還有一個(gè)原因:其他數(shù)據(jù)庫(kù)在python下的操作,其實(shí)基本上和sqlite3的操作是一樣的,也就是說(shuō),python其實(shí)已經(jīng)幾乎統(tǒng)一了數(shù)據(jù)庫(kù)的接口。
打開(kāi)cx_Oracle的文檔頁(yè)面,你會(huì)發(fā)現(xiàn)其風(fēng)格也和python文檔很像,因?yàn)樗麄兌际怯?Sphinx 做的。模塊的使用方法就更像了,把上面的代碼里,獲得連接的那行,換成這樣:
conn = cx_Oracle.connect('username/password@TNSname')
就可以了。只要把用戶(hù)名、密碼、TNS組成一個(gè)字符串,傳進(jìn)去,就可以得到一個(gè)oracle的連接了。
mysql: MySQLdb
和前兩個(gè)非常類(lèi)似,連接的時(shí)候用以下兩個(gè)語(yǔ)法之一:
conn = MySQLdb.connect('host', 'username', 'password', 'database')
conn = MySQLdb.connect(host="host", user="username", passwd="password", db="database")
接下來(lái),也把它當(dāng)成sqlite用就好了。
excel: pyExcelerator
好吧,我承認(rèn)excel不算數(shù)據(jù)庫(kù),只是寫(xiě)在這里充數(shù)而已,哈哈。因?yàn)榕紶栠€是要取下別人發(fā)來(lái)的excel里的數(shù)據(jù)的。
其實(shí),用pyExcelerator來(lái)讀取文件也是很簡(jiǎn)單的:
sheets=pyExcelerator.parse_xls('xxx.xls')
這樣出來(lái)以后,sheets就是整個(gè)工作薄了,它是工作表組成的list,而一個(gè)工作表對(duì)應(yīng)于一個(gè)tuple,格式是: ('工作表名', 內(nèi)容),而內(nèi)容又是一個(gè)dict,key是一個(gè)(行數(shù), 列數(shù))的tuple,value才是正在的對(duì)應(yīng)格子的內(nèi)容??雌饋?lái)確實(shí)比較繞,好在處理excel的應(yīng)用也不多,將就吧。
另外,其實(shí)pyExcelerator還支持寫(xiě)入數(shù)據(jù)到excel的,如果有把查詢(xún)結(jié)果保存成excel的需求的話(huà),可以試試看,我還是盡量不用這種格式了,哈哈。
- Python模塊對(duì)Redis數(shù)據(jù)庫(kù)的連接與使用講解
- Python使用sqlite3模塊內(nèi)置數(shù)據(jù)庫(kù)
- Python 解析pymysql模塊操作數(shù)據(jù)庫(kù)的方法
- 使用python連接mysql數(shù)據(jù)庫(kù)之pymysql模塊的使用
- Python使用sqlalchemy模塊連接數(shù)據(jù)庫(kù)操作示例
- Python基于Pymssql模塊實(shí)現(xiàn)連接SQL Server數(shù)據(jù)庫(kù)的方法詳解
- 在Python中編寫(xiě)數(shù)據(jù)庫(kù)模塊的教程
- Python MySQLdb模塊連接操作mysql數(shù)據(jù)庫(kù)實(shí)例
- Python bsddb模塊操作Berkeley DB數(shù)據(jù)庫(kù)介紹
- ?分享一個(gè)Python?遇到數(shù)據(jù)庫(kù)超好用的模塊
相關(guān)文章
macbook安裝環(huán)境chatglm2-6b的詳細(xì)過(guò)程
這篇文章主要介紹了macbook安裝chatglm2-6b的過(guò)程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
Python順序結(jié)果、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解
這篇文章主要給大家介紹了關(guān)于Python順序結(jié)果、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的相關(guān)資料, 程序由3種基本結(jié)構(gòu)組成,順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),需要的朋友可以參考下2023-07-07
Python實(shí)現(xiàn)類(lèi)似jQuery使用中的鏈?zhǔn)秸{(diào)用的示例
chained calls鏈?zhǔn)秸{(diào)用其實(shí)多是指一種方法鏈的程序?qū)懛?這里我們來(lái)看一下Python實(shí)現(xiàn)類(lèi)似jQuery使用中的鏈?zhǔn)秸{(diào)用的示例,首先說(shuō)明一下什么是鏈?zhǔn)秸{(diào)用:2016-06-06
Python?"手繪風(fēng)格"數(shù)據(jù)可視化方法實(shí)例匯總
這篇文章主要給大家介紹了關(guān)于Python?"手繪風(fēng)格"數(shù)據(jù)可視化方法實(shí)現(xiàn)的相關(guān)資料,本文分別給大家?guī)?lái)了Python-matplotlib手繪風(fēng)格圖表繪制、Python-cutecharts手繪風(fēng)格圖表繪制以及Python-py-roughviz手繪風(fēng)格圖表繪制,需要的朋友可以參考下2022-02-02
詳解python如何調(diào)用C/C++底層庫(kù)與互相傳值
Python作為一門(mén)腳本解釋語(yǔ)言,本身又很好的結(jié)合C++,所以使用Python開(kāi)發(fā),在性能要求的地方調(diào)用C/C++底層庫(kù),這簡(jiǎn)直是神器。本文詳細(xì)介紹了Python調(diào)用C/C++底層庫(kù),互相傳值問(wèn)題,下面一起來(lái)看看。2016-08-08
Python+OpenCV解決彩色圖亮度不均衡問(wèn)題
當(dāng)我們換新頭像時(shí),常常會(huì)遇到圖片過(guò)暗導(dǎo)致看不到圖片內(nèi)容的情況,本文將介紹如何通過(guò)Python和OpenCV解決色彩圖亮度不均衡的問(wèn)題,需要的可以參考一下2021-12-12
利用python獲得時(shí)間的實(shí)例說(shuō)明
在python中,它的time模塊功能十分強(qiáng)大,我們今天就來(lái)學(xué)習(xí)下,廢話(huà)少說(shuō),我們來(lái)看下實(shí)際的效果,下面貼出代碼:2013-03-03

