读取PG数据库
方法一: 使用psycopg2
import psycopg2
import pandas as pd
# database,user,password,host,port分别对应要连接的PostgreSQL数据库的数据库名、数据库用户名、用户密码、主机、端口信息,请根据具体情况自行修改
conn = psycopg2.connect(database="db",user="usr",
password="pw",host="ip",port="5432")
cur = conn.cursor()
#查询指令
query = """
SELECT *
FROM schemaA.tableB
"""
# 执行
cur.execute(query)
# 读取数据
rows = cur.fetchall()
# 用pandas将数据转换成dataframe格式,以便后续操作
email_pd = pd.DataFrame(rows)
# 关闭数据库连接
conn.close()
方法二:使用 sqlalchemy
from sqlalchemy import create_engine
import pandas as pd
SQLALCHEMY_DATABASE_URI = 'postgresql://账号:密码@IP地址:5432/database名'
engine = create_engine(SQLALCHEMY_DATABASE_URI)
# 直接用pandas去读取,省去了转换的步骤
df = pd.read_sql('''SELECT *
FROM schemaA.tableB
''', engine)
写入PG数据库
使用sqlalchemy
# create connection
SQLALCHEMY_DATABASE_URI = 'postgresql://账号:密码@IP地址:5432/database名'
engine = create_engine(SQLALCHEMY_DATABASE_URI)
# 写入pg库
df.to_sql(schema='schma', con=engine, name = 'table_name', if_exists='replace', index=False)
路遥知马力,
更应砥砺前行
mingxin