python - Pandas read_sql() - AttributeError : 'Engine' object has no attribute 'cursor'

标签 python pandas sqlalchemy pymysql

我正在尝试使用 pandas read_sql() 方法和 python3+sqlalchemy+pymysql 从 MySQL 查询中读取数据

我尝试遵循以下教程 -

https://pythondata.com/quick-tip-sqlalchemy-for-mysql-and-pandas/

https://www.youtube.com/watch?v=M-4EpNdlSuY

https://www.programcreek.com/python/example/101381/pandas.read_sql

代码一切正常

import pandas
import sqlalchemy
engine = sqlalchemy.create_engine('mysql+pymysql://root:mypass@example.com:3306/mydatabase')
df = pandas.read_sql("SELECT * FROM persons", con = engine)

收到以下错误-

AttributeError: 'Engine' object has no attribute 'cursor'

当我尝试传递“连接”变量而不是“引擎”时,如下所示 -

import pandas
import sqlalchemy
engine = sqlalchemy.create_engine('mysql+pymysql://root:mypass@example.com:3306/mydatabase')
connection = engine.connect()
df = pandas.read_sql("SELECT * FROM persons", con = connection)

它说-

AttributeError: 'Connection' object has no attribute 'cursor'

我做错了什么?

最佳答案

引用 - https://github.com/pandas-dev/pandas/issues/23030#issuecomment-428140488

问题消失了

  • 保存了我的工作簿
  • 重启电脑
  • 重新加载

似乎缓存了一些东西。我可以通过传递“引擎”引用来使用 read_sql() 和其他 pandas sql 函数 -

import pandas
import sqlalchemy
engine = sqlalchemy.create_engine('mysql+pymysql://root:mypass@example.com:3306/mydatabase')
df = pandas.read_sql("SELECT * FROM persons", con = engine)

关于python - Pandas read_sql() - AttributeError : 'Engine' object has no attribute 'cursor' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55314977/

相关文章:

python - 将列表中的真值与另一个列表进行比较

python - 包含 NaN python 的数据集中的 argmin

python - SQLAlchemy 中的 UnboundExecutionError

python - 在 Sqlalchemy 中进行枚举的最佳方法?

python - 使用 pandas 过滤和排序数据

python - SQLAlchemy 将多列映射到单个属性

python - pygame,如何获取图形的坐标?

python - 如何在 Python matplotlib 中设置图形的大小

python - 使用pygithub登录问题

python - 根据2个数据帧计算列值