Python:SQL Alchemy创建引擎语法问题

时间:2018-01-08 17:05:18

标签: python sql-server connection

假设我有一个MSSQL服务器的以下连接信息:

 'Driver={SQL Server};' 
 'Server=VCAB18RPACRGZ12\GNRSRZ11,1414;' 
 'Database=sampleDB;' 
 'uid=sampleID;' 
 'pwd=samplePW'

我想将python数据帧作为表写入MSSQL服务器。我有以下代码:

from sqlalchemy import create_engine

connection = create_engine('mssql+pyodbc://sampleID:samplePW@myhost:VCAB18RPACRGZ12\GNRSRZ11,1414/sampleDB?driver=SQL+Server+Native+Client+10.0')

我的上述连接代码错误输出。我不确定我的连接信息应该在create_engine语句中的确切位置。

这是我的错误......

  

ValueError:基数为10的int()的无效文字:
   'VCAB18RPACRGZ12 \ GNRSRZ11,1414'

1 个答案:

答案 0 :(得分:0)

  

您的服务器地址不正确。   如果 1414 是#端口,则应使用“”代替“”。

SQLAlchemy 使用pyodbc作为默认DBAPI。 pymssql也可用。 以下是连接字符串示例:

# pyodbc -DSN
engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')

# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')

# pyodbc -DSN Less connection
from sqlalchemy import create_engine
#assumes driver name=[SQL+Server+Native+Client+10.0]
#engine = create_engine('mssql+pyodbc://username:password@hostname:port/databasename?driver=SQL+Server+Native+Client+10.0')

engine = create_engine(r'mssql+pyodbc://sampleID:samplePW@VCAB18RPACRGZ12\GNRSRZ11:1414/sampleDB?driver=SQL+Server+Native+Client+10.0')
print engine