如何在 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 访问数据库文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring 批处理中读取 MS Access db(.mdb 文件)并加载到 mysql db