我正在尝试使用熊猫。read\u sql\u table可从MS sql Server(服务器位于网络上)获取数据。我使用Windows身份验证访问服务器。Pandas read\u sql\u表将sql Alchemy连接作为连接的参数。我很难找到一个结合了以下内容的示例:
-
SQL炼金术
-
MS SQL Server
-
DSN(首选
符合SQL炼金术的规范)
-
Windows身份验证
我参考了SQL Alchemy,它展示了一个使用SQL身份验证而不是Windows身份验证的示例。
http://docs.sqlalchemy.org/en/latest/dialects/mssql.html#connecting-to-pyodbc
以下是我尝试过的各种选择。全部返回错误。
import pandas as pd
from sqlalchemy import create_engine
import pyodbc
# set some variables
dbname = 'mydbname'
schemaname = 'myschemaname'
servername = 'myservername'
tablename = âmytablenameâ
sqlcon = create_engine('mssql+pyodbc://@' + servername)
#sqlcon = create_engine('mssql+pyodbc://' + servername + '/' + dbname)
#sqlcon = create_engine('mssql+pyodbc://' + servername)
#sqlcon = create_engine('mssql://' + servername + '/' + dbname + '?trusted_connection=yes')
#sqlcon = create_engine('mssql+pyodbc://' + servername + '/' + dbname + '?trusted_connection=yes')
mydataframe = pd.read_sql_table(tablename,con=sqlcon,schema=schemaname)
我得到的错误是:
(pyodbc.InterfaceError)('IM002','IM002][Microsoft][ODBC驱动程序
管理器]未找到数据源名称,未指定默认驱动程序
(0)(SqlDriverConnection)“”)(此错误的背景信息位于:
http://sqlalche.me/e/rvf5
)
尤其令人困惑的是,关于没有指定默认驱动程序的评论。当我使用此DSN格式时,没有一个示例提到指定默认驱动程序。
我参考了这个例子,但对我来说也是失败的:
How do I connect to SQL Server via sqlalchemy using Windows Authentication?
我可以很好地与SSMS连接。我正在使用python 3.6。