我正在尝试使用 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/