看書上通過ODBC訪問數(shù)據(jù)庫的案例,想實(shí)踐一下在Python 3.6.1中實(shí)現(xiàn)access2003數(shù)據(jù)庫的鏈接,但是在導(dǎo)入odbc模塊的時候出現(xiàn)了問題,后來查了一些資料就嘗試著使用pypyodbc,最后成功了。
操作步驟:
①安裝pypyodbc
目前Python安裝通常使用steup.py或者pip工具,在python3.4之后的的版本都默認(rèn)包含了pip,因此,這里推薦使用pip工具。在cmd中執(zhí)行:pip install pypyodbc,耐心等待執(zhí)行完成,pypyodbc模塊就已經(jīng)安裝成功了。如果提示安裝超時或者失敗可以重新再執(zhí)行一次。執(zhí)行成功后,查看C:/Python36/Lib/site-packages中就會發(fā)現(xiàn)多了pypyodbc的目錄。這時候就可以使用pypyodbc模塊了。
②創(chuàng)建數(shù)據(jù)源
先利用Access創(chuàng)建一個數(shù)據(jù)庫,我是在D盤中創(chuàng)建了一個名稱為addresses.mdb的數(shù)據(jù)庫文件。然后在“控制面板”中找到“管理工具”,打開其中的“數(shù)據(jù)源(ODBC)”,選擇“添加”,并選擇“Microsoft Access Driver(*.mdb,*.accdb)”,點(diǎn)擊完成。然后輸入數(shù)據(jù)源名“addresses”,并點(diǎn)擊“選擇”找到在D盤創(chuàng)建的數(shù)據(jù)庫。這樣就將數(shù)據(jù)源創(chuàng)建完成。
③代碼部分
import pypyodbcstr = 'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=D://addresses.mdb'db=pypyodbc.win_connect_mdb(str) # 打開數(shù)據(jù)庫連接curser = db.cursor() # 產(chǎn)生cursor游標(biāo)curser.execute("select * from address order by id desc")for col in curser.description: # 顯示行描述 print (col[0], col[1])result = curser.fetchall()for row in result: # 輸出各字段的值 print (row) print (row[1], row[2]) timeTuple = time.localtime(row[3]) print (time.strftime('%Y/%m/%d', timeTuple))
注意事項(xiàng):
①如果過程中出現(xiàn)下圖的情況,注意檢查創(chuàng)建數(shù)據(jù)源過程中的驅(qū)動與代碼中的Microsoft Access Driver (*.mdb,*.accdb)是否一致。
②注意這里使用的是pypyodbc.win_connect_mdb,如果使用pypyodbc.connect同樣會出現(xiàn):
③如果出現(xiàn)下圖的情況,可能是文件已加密,只需要在DBQ前面加上:PWD=YourPWD(文件的密碼)
以上這篇對Python通過pypyodbc訪問Access數(shù)據(jù)庫的方法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)之家。
新聞熱點(diǎn)
疑難解答
圖片精選