最近在做一个小工具,需要把从 Excel / 数据仓库拉下来的数据写回 MySQL。按惯例,用的是pandas + SQLAlchemy + pymysql这一套。
结果,明明 to_sql 的写法完全没问题,却莫名其妙报了一个看起来很“离谱”的错误:
AttributeError: 'Engine' object has no attribute 'cursor'
最后折腾半天,真正的原因居然是:pandas / SQLAlchemy 环境装坏了。
这篇文章就把整个踩坑过程、错误现象和最终解决方案完整记录下来,方便以后自己查,也希望能帮到同样卡住的人。
一、业务背景 & 代码场景
场景很简单:
- 从数据仓库拉一份日报数据到 DataFrame
- 根据目标表结构重命名列
- 再用
to_sql写回到 MySQL 的业务库
核心写库函数大致如下(精简版):
importpymysql