【发布时间】:2019-08-09 10:19:41
【问题描述】:
我正在尝试使用 Python 从 Pandas 数据帧上传到 SQL Server 表,但我无法使用 sqlalchemy 成功创建连接。我知道我首先需要使用 create_engine() 创建一个引擎对象,然后使用 engine.connect() 创建一个连接对象,但是我在 create_engine() 中输入的任何字符串似乎都不起作用。我尝试了以下方法:
engine = create_engine('mssql+pyodbc://myServer/myDB')
conn = engine.connect()
和:
engine = create_engine('mssql+pyodbc://Server=myServer;Database=myDB;')
conn = engine.connect()
和:
engine = create_engine('mssql+pyodbc://Driver={SQL Server};Server=myServer;Database=myDB;Trusted_Connection=yes;')
conn = engine.connect()
但都导致以下错误:
InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
我也试过了:
engine = create_engine('mssql+pyodbc://Driver={SQL Server Native Client 11.0};Server=myServer;Database=myDB;Trusted_Connection=yes;')
conn = engine.connect()
导致以下错误:
DBAPIError: (pyodbc.Error) ('IM010', '[IM010] [Microsoft][ODBC Driver Manager] 数据源名称太长 (0) (SQLDriverConnect)')
虽然我可以像这样使用 pyodbc 成功连接:
conn = pyodbc.connect('DRIVER={SQL Server};Server=myServer;Database=myDB;Trusted_Connection=yes;')
我似乎无法为 sqlalchemy 做这项工作。
任何帮助将不胜感激。
【问题讨论】:
标签: python sql-server sqlalchemy