首页 > 解决方案 > pyodbc 错误咨询 MS 访问数据库

问题描述

我正在尝试执行一些存储在 json 文件中的 Sql Queries ,此时,一切似乎都很好,但是当第二个查询执行时,运行错误,第二个和第三个查询必须从第二个加载数据database ,所有数据库都是 Microsoft Access 数据库。

我从一个名为"path.json"的包含以下内容的 json 文件加载数据库文件存储在我的 pc 中的路径:

 { 
 "path":"C:\\Users\\Ricardo Roa\\Documents\\pb\\"
 }

第二个 json 文件queries.json,包含 sql 查询:

{
"querie_0":"select * from censo0",
"querie_1":"select * from censo1",
"querie_2":"select * from censo2"
}

这是我的代码:

import os
import json as js
import pyodbc as con
import pandas as pd



def conections():
    files = str
    with open(r'C:\Users\Ricardo Roa\Documents\pb\path.json') as json_file:
        data = js.load(json_file)
        for key , items in data.items():
            path = items

    
    for root, dirs, files in os.walk(path):
        for file in files:
            if file.endswith(".accdb"):
                files = ((os.path.join(root, file)))
                conn = con.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ='+files+';')
                Db2 = pd.DataFrame()
                df = pd.DataFrame()
                with open(r'C:\Users\Ricardo Roa\Documents\pb\queries.json') as q_file:
                    queries = js.load(q_file)
                    for key, value in queries.items():
                        queries = value
                        Db1 = pd.read_sql(''+queries+'',conn)
                        Db2 = Db2.append(Db1)
                df = df.append(Db2)
            return df
        

这是错误:

DatabaseError: Execution failed on sql 'select * from censo1': ('42S02', "[42S02] [Microsoft][ODBC Microsoft Access Driver] The Microsoft Access database engine cannot find the input table or query 'censo1'. Make sure it exists and that its name is spelled correctly. (-1305) (SQLExecDirectW)")

请在这里提供一些帮助。

这是我电脑中的文件: 在此处输入图像描述

标签: python

解决方案


推荐阅读