MS Access 데이터베이스의 테이블 데이터를 데이터 프레임 형태로 팬더에 가져 오는 간단한 작업을 수행하고 싶습니다. 나는 최근에이 작업을 훌륭하게 수행했으며, 이제 더 이상 작동하지 않는 이유를 알 수 없습니다. 처음에는 연결 문제를 해결할 때 올바른 bitness를 가진 새로운 microsoft 데이터베이스 드라이버를 설치해야 할 필요가있는 작업이 있었기 때문에 다시 살펴보고 드라이버를 다시 설치해야한다는 것을 기억합니다. 아래는 내가 설정에 사용하는 것입니다.PYODBC를 사용하여 팬더에 액세스 데이터베이스 테이블을 읽는 중 오류가 발생했습니다
- OS : 윈도우 7 프로페셔널 64 비트 (2017년 9월 6일을 확인)
- Access 버전 : 노트북에 설치의
기록 액세스 2016 32 비트
(2017년 9월 6일을 확인)
- 파이썬 버전 : 파이썬 3.6.1 (64 비트)에 필요한 AccessDatabaseEngine가 설치
- 윈도우 데이터베이스 엔진 드라이버 위의 파이썬 비트 수를 기반으로합니다
- (2017년 9월 11일을 확인) 파이썬 -V>를 사용하여 발견 AccessDatabaseEn 사용 gine_X64.exe은 (2017년 9월 11일을 확인)> AccessDatabaseEngine_X64.exe/수동을 사용하여 2010 릴리스
에서 나는 테스트 데이터베이스에 대한 연결을 시도하기 위해 다음과 같은 간단한 테스트 코드를 실행하고 있습니다.
import pyodbc
import pandas as pd
[x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]
반환 :
['Microsoft Access Driver (*.mdb, *.accdb)']
연결 문자열을 설정. TestTable1에 연결을 시도
TestTable1
아래의 오류가 있습니다 :
dbpath = r'Z:\1Users\myfiles\software\JupyterNotebookFiles\testDB.accdb'
conn_str = (r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};''DBQ=%s;' %(dbpath))
cnxn = pyodbc.connect(conn_str)
crsr = cnxn.cursor()
for table_info in crsr.tables(tableType='TABLE'):
print(table_info.table_name)
반환 ...의 I는 DB에 연결하고 있음을 확인.
dfTable = pd.read_sql_table(TestTable1, cnxn)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-14-a24de1550834> in <module>()
----> 1 dfTable = pd.read_sql_table(TestTable1, cnxn)
2 #dfQuery = pd.read_sql_query("SELECT FROM [TestQuery1]", cnxn)
NameError: name 'TestTable1' is not defined
작은 따옴표로 다시 시도하면 아래 오류가 표시됩니다.
dfTable = pd.read_sql_table('TestTable1', cnxn)
---------------------------------------------------------------------------
NotImplementedError Traceback (most recent call last)
<ipython-input-15-1f89f9725f0a> in <module>()
----> 1 dfTable = pd.read_sql_table('TestTable1', cnxn)
2 #dfQuery = pd.read_sql_query("SELECT FROM [TestQuery1]", cnxn)
C:\Users\myfiles\Anaconda3\lib\site-packages\pandas\io\sql.py in read_sql_table(table_name, con, schema, index_col, coerce_float, parse_dates, columns, chunksize)
250 con = _engine_builder(con)
251 if not _is_sqlalchemy_connectable(con):
--> 252 raise NotImplementedError("read_sql_table only supported for "
253 "SQLAlchemy connectable.")
254 import sqlalchemy
NotImplementedError: read_sql_table only supported for SQLAlchemy connectable.
나는 드라이버 문제로 돌아가서 행운없이 32 비트 버전을 다시 설치하려고했습니다.
아무도 아이디어가 있습니까? pandas.read_sql_table
의 문서 당
합니다. 환상적입니다, 고마워요! – talidridae