pymysql与sqlalchemy的关系

pymysql与sqlalchemy的关系,mysql,pandas,sqlalchemy,io,pymysql,Mysql,Pandas,Sqlalchemy,Io,Pymysql,我已经使用了很多python和MySQL。但是以分开的方式。 为了实现更好的自动化任务,我开始了解pymysql 对我来说,我发现只有通过pymysql+pandas操作才能实现一些数据库操作。然而,在一些数据库操作中,我不得不使用sqlachemy来创建引擎。这让我很困惑sqlalechmy中的引擎是什么 以及发动机和连接之间的区别/关系 基于官方文档:此包包含一个纯Python MySQL客户端库 就我的理解而言,基本上,它是连接python和mysql的驱动程序。 因为熊猫有方法, 因此,

我已经使用了很多python和MySQL。但是以分开的方式。 为了实现更好的自动化任务,我开始了解pymysql

对我来说,我发现只有通过pymysql+pandas操作才能实现一些数据库操作。然而,在一些数据库操作中,我不得不使用sqlachemy来创建引擎。这让我很困惑sqlalechmy中的引擎是什么 以及发动机和连接之间的区别/关系

基于官方文档:此包包含一个纯Python MySQL客户端库

就我的理解而言,基本上,它是连接python和mysql的驱动程序。 因为熊猫有方法,

因此,我应该通过结合这两种方法来实现所有数据库操作

例如,基于以下

etl_conn = pymysql.connect(host = host, user = user,password = passwd,db = db_health_plan)
query = 'select * from HEALTH_PLAN.WD_PNL_MONTHLY'
pd.read_sql(query, etl_conn, index_col = 'index')
我可以使用pandas.io和pymysql创建一个表

from pandas.io import sql
create_table_query ='CREATE TABLE WD_PNL_MONTHLY_05052020 AS SELECT * FROM 
HEALTH_PLAN.WD_PNL_MONTHLY';
sql.execute(create_table_query, etl_conn)
db_connection_str = 'mysql+pymysql://****'
from sqlalchemy import create_engine
sql_engine = create_engine(db_connection_str)
然而,当我试图将行插入表中时失败了

total.to_sql('WD_PNL_MONTHLY', etl_conn,
schema= 'HEALTH_PLAN', if_exists='append', 
index=True, index_label=None, chunksize=None, dtype=None)
为了完成这个任务,我必须创建引擎链接sqlalchemy和pymysql

from pandas.io import sql
create_table_query ='CREATE TABLE WD_PNL_MONTHLY_05052020 AS SELECT * FROM 
HEALTH_PLAN.WD_PNL_MONTHLY';
sql.execute(create_table_query, etl_conn)
db_connection_str = 'mysql+pymysql://****'
from sqlalchemy import create_engine
sql_engine = create_engine(db_connection_str)
那么下面的一个就行了

total.to_sql('WD_PNL_MONTHLY', sql_engine,
schema= 'HEALTH_PLAN', if_exists='append', 
index=True, index_label=None, chunksize=None, dtype=None)