gpt4 book ai didi

python - 如何使用 python 提取 Microsoft Access 数据库中的列内容

转载 作者:太空宇宙 更新时间:2023-11-03 21:43:17 25 4
gpt4 key购买 nike

我刚刚开始学习 python,想知道是否有人可以帮助我使用 python 提取列数据?我已经研究了大约3个小时。

代码:

import pyodbc


conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb,
*.accdb)};DBQ=C:\Users\jgp22\Documents\Database11.accdb;')
cursor = conn.cursor()
cursor.execute('select * from information')


for row in cursor.fetchall():
print(row)

错误:

Traceback (most recent call last):
File "C:\Users\jgp22\Desktop\Python\Data.py", line 3, in <module>
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb,
*.accdb)};DBQ=C:\Users\jgp22\Documents\Database11.accdb;')
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager]
Data source name not found and no default driver specified (0)
(SQLDriverConnect)')

错误#2:

Traceback (most recent call last):
File "C:\Users\jgp22\Desktop\Python\GrabData.py", line 3, in <module>
conn = pyodbc.connect(r'DSN=MAD')
pyodbc.Error: ('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver]
Cannot open database '(unknown)'. It may not be a database that your
application recognizes, or the file may be corrupt. (-1028)
(SQLDriverConnect); [HY000] [Microsoft][ODBC Microsoft Access Driver] Cannot
open database '(unknown)'. It may not be a database that your application
recognizes, or the file may be corrupt. (-1028)")

最佳答案

创建命名系统 DSN

  1. 转到 ODBC 管理(确保它是 64 位)
  2. 点击系统 DSN
  3. 创建指向“C:\Users\jgp22\Documents\Database11.accdb”的命名 DSN,在此示例中让我们使用 myDsn
  4. 使用连接字符串 DSN=myDsn,其中 myDsn 是您在第 3 步中提供的名称。不必担心驱动程序信息或路径。所有这些都与 DSN 记录一起存储在系统上。

ODBC 数据源管理员路径

要为 32 位应用程序设置 DSN,您必须使用:

%WINDIR%\SysWOW64\odbcad32.exe

对于 64 位应用程序,您必须使用:

%WINDIR%\System32\odbcad32.exe

来自https://robertoschiabel.wordpress.com/2008/02/28/windows-x64-32bit-odbc-vs-64bit-odbc/amp/

安装 64 位 Access DB 驱动程序

用于 Access accdb 文件的驱动程序可能在您的系统上不可用。在这种情况下,您将需要安装 Microsft 的驱动程序。 accdb 驱动程序可从 Microsoft 下载:
https://microsoft.com/en-US/download/details.aspx?id=13255

使用 32 位 Python(如果 Access DB 驱动程序在 64 位中不可用)

如果您的系统上已安装 32 位 accdb ODBC 驱动程序,则另一种选择是使用 32 位版本的 Python。此类环境的一个示例可能是您已安装 32 位版本的 Office。
从以下位置安装 32 位版本的 Windows Python 3.7.0:
https://www.python.org/ftp/python/3.7.0/python-3.7.0.exe
使用 32 位版本的 python 时,您应该在 32 位 ODBC 数据源管理器下 Access DSN。

连接到指定的 DSN

import pyodbc

conn = pyodbc.connect(r'DSN=myDsn')

关于python - 如何使用 python 提取 Microsoft Access 数据库中的列内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52685016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com