如何在 python 中读取 .mdb 访问数据库文件?

Posted

技术标签:

【中文标题】如何在 python 中读取 .mdb 访问数据库文件?【英文标题】:How to read .mdb access database file in python? 【发布时间】:2022-01-14 05:25:41 【问题描述】:

我需要读取 azure blob 存储中的 python 中的 .mdb 文件并将数据帧导出为 csv,我能够读取 csv 但我无法读取 .mdb 文件。有没有其他方法可以做到这一点,请随时提出python以外的建议。

我尝试了什么:

from azure.storage.blob import BlockBlobService
import pandas as pd
import tables

STORAGEACCOUNTNAME= <storage_account_name>
STORAGEACCOUNTKEY= <storage_account_key>
LOCALFILENAME= <local_file_name>
CONTAINERNAME= <container_name>
BLOBNAME= <blob_name>

blob_service=BlockBlobService(account_name=STORAGEACCOUNTNAME,account_key=STORAGEACCOUNTKEY)
blob_service.get_blob_to_path(CONTAINERNAME,BLOBNAME,test.mdb)

# LOCALFILE is the file path
dataframe_blobdata = pd.read_csv(test.mdb)

【问题讨论】:

【参考方案1】:

要从数据库读取 .mdb 文件,它需要名为 pyodbc 的第三方应用程序,下面是从 python 读取 .mdb 文件的示例代码。

import csv
import pyodbc

MDB = 'c:/path/to/my.mdb'
DRV = 'Microsoft Access Driver (*.mdb)'
PWD = 'mypassword'

conn = pyodbc.connect('DRIVER=%s;DBQ=%s;PWD=%s' % (DRV,MDB,PWD))
curs = conn.cursor()

SQL = 'SELECT * FROM mytable;' # insert your query here
curs.execute(SQL)

rows = curs.fetchall()

curs.close()
conn.close()

# you could change the 'w' to 'a' for subsequent queries
csv_writer = csv.writer(open('mytable.csv', 'w'), lineterminator='\n')

for row in rows:
    csv_writer.writerow(row)

更多信息请查找相关SO1SO2

【讨论】:

我认为 windows 依赖项在 azure env 上不起作用,因为它使用的是 linux env 如果它是 linux 环境试试这个***.com/a/15400363

以上是关于如何在 python 中读取 .mdb 访问数据库文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python 64 位读取 .mdb 文件?

从 LAMP 下运行的 MDB 文件读取二进制数据

如何在 Spring 批处理中读取 MS Access db(.mdb 文件)并加载到 mysql db

简单访问 PHP

如何在 Azure 数据砖中使用 ucanaccess(ms 访问 jdbc 驱动程序)?

为许多用户通过 PHP 访问打开的 MDB 文件