0

我正在尝试将数据框信息添加到 PostgreSQL 的表中。

但我不知道如何创建引擎。它很可能与与 SQL 服务器的连接有关,但我不知道如何创建它。

我在 to_sql 文档上看到的例子是:

>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite://', echo=False)

我尝试的是:

param_dic = {'host': 'localhost', 'database':'databasename', 'user':'username', 'password':'password' }
conn = pgsql.connect(**param_dic)
cursor = conn.cursor()

for filename in work_dir.glob('excel_filename.xlsx'):
    df = pd.read_excel(filename)
    df.to_sql('table name', conn, if_exists='replace')
    conn.commit()
    cursor.close()
4

1 回答 1

1
engine = create_engine('sqlite://', echo=False)

这似乎不完整。通常你会把连接字符串放在这里,而不仅仅是“sqlite”。

我猜你想要做的是

# note, put your actual credentials here
engine = create_engine('postgresql://scott:tiger@localhost/test', echo=False)

然后,您可以基于此引擎创建连接,例如

with engine.connect() as con:
    # etc...
    df.to_sql('table name', conn, if_exists='replace')
    # etc...

或者只是 con = engine.connect()

于 2020-08-11T14:53:46.870 回答