You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决向SSMS写入数据时的实例化错误?

解决Python向SQL Server写入数据时的AttributeError问题

已实现从Python读取SQL Server数据,但写入时触发错误,报错信息如下:

AttributeError: 'pyodbc.Connection' 对象没有属性 '_instantiate_plugins'

问题原因

SQLAlchemy的create_engine()函数需要传入连接字符串,而非已创建好的pyodbc.Connection实例。直接传入已建立的cnxn连接对象,会导致SQLAlchemy无法初始化引擎必需的插件机制,从而抛出该错误。

修正后的代码

import pandas as pd
from sqlalchemy import create_engine
import pyodbc

# 构造示例数据
df2 = pd.DataFrame({'key':['a','a','b'],
                    'val':[435,7,6]})

# 替换为你的SQL Server连接字符串
# 格式示例:mssql+pyodbc://用户名:密码@服务器地址/数据库名?driver=ODBC+Driver+17+for+SQL+Server
connection_string = "mssql+pyodbc://your_username:your_password@your_server/your_db?driver=ODBC+Driver+17+for+SQL+Server"

# 创建SQLAlchemy引擎
cn = create_engine(connection_string)

# 写入数据到SQL Server
rows_uploaded = df2.to_sql(
    OUTPUT_TABLE_NAME, 
    cn, 
    schema='sample_schema', 
    if_exists='replace', 
    index=False, 
    chunksize=1000
)

额外说明

  • 若之前使用pyodbc的connect()方法创建连接,只需将对应参数转换为上述格式的连接字符串即可。
  • 确保本地安装了适配的ODBC驱动(如ODBC Driver 17 for SQL Server),否则可能出现连接失败问题。

内容的提问来源于stack exchange,提问作者Scott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 04:45:42