使用 Pandas 追加到 PostgreSQL 数据库

问题描述 投票:0回答:0

我有一个 Pandas 数据框,其中包含 PostgreSQL 数据库所需的所有列,我正在尝试将数据框的行添加到数据库中,并允许它通过调用

df.to_sql(TABLE_NAME, ENGINE, if_exists='append', index=False)
自行生成可选列,但是它给了我以下错误:

ProgrammingError: (psycopg2.errors.InsufficientPrivilege) permission denied for schema public
LINE 2: CREATE TABLE "table_name" (

我猜测发生此错误是因为它试图在表已存在时创建表(尽管具有不同的列类型,例如 TEXT 而不是 VARCHAR)。我尝试使用

cursor.execute
和 psycopg2 在表中插入一行,效果很好。我是否需要向
to_sql
函数添加一些内容,还是在没有所有列存在的情况下无法将数据框添加到 PostgreSQL 数据库?

我正在使用

ENGINE = create_engine(f'postgresql+psycopg2://{USER}:{PASSWORD}@{HOST}/{DATABASE}')
创建引擎。

python pandas postgresql psycopg2
© www.soinside.com 2019 - 2024. All rights reserved.