带有if_exists =“ append”的df.to_sql失败,出现TypeError:发送到create_engine的无效参数

时间:2019-04-03 15:50:54

标签: python pandas sqlalchemy

我目前正在使用0.24.2的Pandas,11.2的Postgresql和1.3.2的sqlalchemy,试图使用if_exists="append"将数据帧写入PostgreSQL数据库。当代码运行时,返回以下错误:

TypeError: Invalid argument(s) 'if_exists' sent to create_engine(), using
configuration PGDialect_psycopg2/QueuePool/Engine.  Please check that the
keyword arguments are appropriate for this combination of components.

代码简单明了,看起来与文档中的示例完全相同:

def write_to_db(df):
   engine = create_engine(
         "postgresql://esammons@localhost:5432/testdb", if_exists='append'
        )
   df.to_sql("ctcl", engine)

在不使用if_exists选项的情况下执行该代码即可。

1 个答案:

答案 0 :(得分:1)

尝试:

def write_to_db(df):
   engine = create_engine(
         "postgresql://esammons@localhost:5432/testdb"
        )
   df.to_sql("ctcl", engine, if_exists='append')