我试图将一个非常简单的Access文件中的数据转换为python代码。我按照此视频中的说明进行操作:https://www.youtube.com/watch?v=zw9P2wSnoIo
我的代码如下:
import pypyodbc
con=pypyodbc.connect('DRIVER={Microsoft Access Driver(*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;{FIL=MS Access};DriverId=25;{DefaultDir=C:/Users/climate1/Documents/Test};DBQ=C:/Users/climate1/Documents/Test/dogs1.mdb;')
cursor=con.cursor()
cursor.execute("SELECT * FROM doggos")
for row in cursor,fetchall():
print(row)
但它似乎无法找到正确的驱动程序,我收到此错误:
文件" doggos.py",第5行,in con = pypyodbc.connect(' DRIVER = {Microsoft Access Driver(* .mdb)}; UID = admin; UserCommitSync = Yes; Threads = 3; SafeTransactions = 0; PageTimeout = 5; MaxScanRows = 8; MaxBufferSize = 2048 ; {FIL = MS Access}; DriverId = 25; {DefaultDir = C:/ Users / climate1 / Documents / Test}; DBQ = C:/Users/climate1/Documents/Test/dogs1.mdb;') 文件" C:\ Users \ climate1 \ Documents \ SaraCode \ lib \ site-packages \ pypyodbc.py",第2454行, init self.connect(connectString,autocommit,ansi,timeout,unicode_results,readonly) 文件" C:\ Users \ climate1 \ Documents \ SaraCode \ lib \ site-packages \ pypyodbc.py",第2507行,在连接中 check_success(self,ret) 文件" C:\ Users \ climate1 \ Documents \ SaraCode \ lib \ site-packages \ pypyodbc.py",第1009行,在check_success中 ctrl_err(SQL_HANDLE_DBC,ODBC_obj.dbc_h,ret,ODBC_obj.ansi) 文件" C:\ Users \ climate1 \ Documents \ SaraCode \ lib \ site-packages \ pypyodbc.py",第985行,在ctrl_err中 提出错误(state,err_text) pypyodbc.Error:(' IM002',' [IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序')
我不是python的新手,但我对Windows和Access都很新。我正在使用python版本3.6.3并使用pip install下载了pypyodbc。
我尝试过在32位和64位之间返回第四位,并且还使用了一些基本的语法内容(正斜杠与反斜杠等)
答案 0 :(得分:0)
ODBC对驱动程序名称很挑剔,而且你的驱动程序名称缺少一个空格。
DRIVER={Microsoft Access Driver(*.mdb)}
不正确。它必须是
DRIVER={Microsoft Access Driver (*.mdb)}
假设您使用的是32位Python。