![](/img/trans.png)
[英]Persist a pandas dataframe to a postgres sql table using StringIO
[英]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.