【问题标题】:How to read .mdb access database file in python?如何在 python 中读取 .mdb 访问数据库文件?
【发布时间】: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)

【问题讨论】:

    标签: python azure ms-access azure-functions azure-blob-storage


    【解决方案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 环境试试这个stackoverflow.com/a/15400363
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多