pandas 获取SQL数据时出错

tzxcd3kk  于 2023-04-19  发布在  其他
关注(0)|答案(1)|浏览(215)

所以我只是从我的数据库中提取数据,我遇到了以下错误。代码如下:

import pandas as pd
import sqlalchemy

engine = sqlalchemy.create_engine("mysql+pymysql://root:@localhost:3306/haider")
df = pd.read_sql_table("ahmed", engine)

在运行此代码时,我得到了以下错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In [46], line 1
----> 1 df = pd.read_sql_table("ahmed", engine)

File E:\python\lib\site-packages\pandas\io\sql.py:286, in read_sql_table(table_name, con, schema, index_col, coerce_float, parse_dates, columns, chunksize)
    282     raise ValueError(f"Table {table_name} not found")
    284 # error: Item "SQLiteDatabase" of "Union[SQLDatabase, SQLiteDatabase]"
    285 # has no attribute "read_table"
--> 286 table = pandas_sql.read_table(  # type: ignore[union-attr]
    287     table_name,
    288     index_col=index_col,
    289     coerce_float=coerce_float,
    290     parse_dates=parse_dates,
    291     columns=columns,
    292     chunksize=chunksize,
    293 )
    295 if table is not None:
    296     return table

File E:\python\lib\site-packages\pandas\io\sql.py:1460, in SQLDatabase.read_table(self, table_name, index_col, coerce_float, parse_dates, columns, schema, chunksize)
   1417 """
   1418 Read SQL database table into a DataFrame.
   1419 
   (...)
   1457 
   1458 """
   1459 table = SQLTable(table_name, self, index=index_col, schema=schema)
-> 1460 return table.read(
   1461     coerce_float=coerce_float,
   1462     parse_dates=parse_dates,
   1463     columns=columns,
   1464     chunksize=chunksize,
   1465 )

File E:\python\lib\site-packages\pandas\io\sql.py:1003, in SQLTable.read(self, coerce_float, parse_dates, columns, chunksize)
   1001 else:
   1002     sql_select = select(self.table)
-> 1003 result = self.pd_sql.execute(sql_select)
   1004 column_names = result.keys()
   1006 if chunksize is not None:

File E:\python\lib\site-packages\pandas\io\sql.py:1405, in SQLDatabase.execute(self, *args, **kwargs)
   1403 def execute(self, *args, **kwargs):
   1404     """Simple passthrough to SQLAlchemy connectable"""
-> 1405     return self.connectable.execution_options().execute(*args, **kwargs)

AttributeError: 'OptionEngine' object has no attribute 'execute'

注意:我的数据库没有任何密码,其次我已经安装了PyMySQL。
我试图解释一个错误,我得到的同时获取sql数据使用python和我希望得到一个解决方案,这个问题。

e5nqia27

e5nqia271#

我强烈建议您尝试以下方法

engine = sqlalchemy.create_engine("mysql+pymysql://root:@localhost:3306/haider").connect()

我想你可能错过了结尾的connect()部分。

相关问题