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

将Pandas DataFrame写入MS SQL Server时的无效列名错误及解决方法

解决Pandas写入MS SQL Server时的列名匹配错误问题

根据你描述的场景——Windows系统、Python 3.6、Pandas 0.22、SQLAlchemy 1.1.13及pyodbc 4.0.17环境下,将DataFrame写入MS SQL Server时出现“系统期望匹配[DateDay],但识别到带单引号的'DateDay'”的错误,这个问题的根源其实不在列名本身,而是表名的写法导致的。

问题原因

当你使用包含数据库和架构前缀的表名(比如'DATABASE.dbo.TABLENAME')时,SQLAlchemy或pyodbc在解析表名的过程中,引号处理逻辑出现了异常,间接干扰了列名的识别匹配流程,进而抛出了相关错误提示。

解决方案

移除表名中的DATABASE.dbo前缀,直接使用纯表名即可正常写入数据。

举个代码示例:
原来的报错写法:

df.to_sql('DATABASE.dbo.TABLENAME', con=engine, if_exists='append', index=False)

修改后的正确写法:

df.to_sql('TABLENAME', con=engine, if_exists='append', index=False)

需要注意的是,你的SQLAlchemy连接字符串需要已经指定了目标数据库,这样直接写表名就能正确定位到DATABASE.dbo.TABLENAME这个表。

内容的提问来源于stack exchange,提问作者Ahmed R. Abdulaal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:23:08