【问题标题】:Insert DataFrame into PostgreSQL using asyncpg使用 asyncpg 将 DataFrame 插入 PostgreSQL
【发布时间】:2022-11-24 20:33:00
【问题描述】:

我正在尝试使用 asyncpg 将 Pandas 数据框写入 postgres。

我已经为我的数据框('values1')尝试了这个解决方案:

tuples = ([tuple(x) for x in values1.values])

s = await conn.copy_records_to_table(values1, records=tuples, columns=list(values1.columns), timeout=10)

但这对我不起作用:

UndefinedTableError: relation "   objectid                                  name descript   ty" does not exist

【问题讨论】:

    标签: pandas postgresql dataframe asyncpg


    【解决方案1】:

    如果你只是用 postgresql 创建引擎就不会更容易了 我假设您可能有字典,其中包含创建连接所需的数据。

    engine = psycopg2.connect(user=db['user'],
                                  password=db['password'],
                                  host=db['host'], 
                                  port=db['port'], 
                                  database=db['dbname']) 
    

    然后只需将 pandas 内置函数与您的数据框一起使用,如下所示:

    df.to_sql(TABLE_NAME, conn=engine, if_exists='append' ) # or 'replace' instead of append
    

    【讨论】:

    • 我不想在这个项目中使用 psycopg2。我有使用 asyncpg 的连接:conn = await asyncpg.connect(user='user', password='mypass!',database='db', host='host', port='5432')。 @1001001
    猜你喜欢
    • 2020-03-18
    • 2020-08-05
    • 2017-09-30
    • 2017-06-04
    • 2022-12-09
    • 1970-01-01
    • 2018-04-18
    • 2019-03-22
    • 1970-01-01
    相关资源
    最近更新 更多