【问题标题】:Python: SQL Alchemy Create Engine Syntax IssuesPython:SQLAlchemy 创建引擎语法问题
【发布时间】:2018-01-08 17:05:17
【问题描述】:

假设我有以下 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: int() 以 10 为底的无效文字:
'VCAB18RPACRGZ12\GNRSRZ11,1414'

【问题讨论】:

    标签: python sql-server connection


    【解决方案1】:

    您的服务器地址不正确。 如果 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
    

    【讨论】:

    • 谢谢;根据我的信息,你能告诉我引擎的语法应该是什么吗?我以前看过你的高级示例......现在是一个准确的语法问题,这是我正在努力解决的问题
    猜你喜欢
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    相关资源
    最近更新 更多