方法一: 使用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
from sqlalchemy import create_engine import pandas as pd # 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)执行DDL语句
使用sqlalchemy
from sqlalchemy import create_engine
import pandas as pd
# create connection
SQLALCHEMY_DATAbase_URI = 'postgresql://账号:密码@IP地址:5432/database名'
engine = create_engine(SQLALCHEMY_DATAbase_URI)
conn = engine.connect()
conn.execute('TRUNCATE schema名字.表格名')
路遥知马力,
更应砥砺前行
mingxin



