簡體   English   中英

使用 pandas 數據框在 postgres 表中填充數據

[英]Populate data in a postgres table using a pandas dataframe

我正在使用 python 嘗試連接 postgres,我在暫存模式中的 postgres 數據庫中創建了一個表。

create table staging.data( Name varchar, Age bigint);

然后我嘗試連接並將我的數據框數據插入到該表中:

import psycopg2
import pandas as pd
from sqlalchemy import create_engine
  
conn_string = 'postgresql://myuser:password@host/database_name'

  
db = create_engine(conn_string)
conn = db.connect()
  
  
# our dataframe
data = {'Name': ['Tom', 'dick', 'harry'],
        'Age': [22, 21, 24]}
  
# Create DataFrame
df = pd.DataFrame(data)
df.to_sql('staging.data', con=conn, if_exists='replace',
          index=False)
conn = psycopg2.connect(conn_string
                        )
conn.autocommit = True
cursor = conn.cursor()
  
sql1 = '''select * from staging.data;'''
cursor.execute(sql1)
for i in cursor.fetchall():
    print(i)
  
conn.commit()
conn.close()

但是 Python 以沒有錯誤消息結束,並且沒有數據從 postgres 到我的表中。

對此有什么想法嗎?

問候

我認為問題在於您正在嘗試使用public以外的模式。 嘗試通過to_sql()schema參數傳遞模式名稱,如下所示:

df.to_sql('data', con=conn, if_exists='replace', schema='staging', index=False)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM