Open1
psycopg2チートシート
接続
基本
def get_connection():
dsn = {
"host":"host_address", # ホスト名
"port":"port_number", # ポート番号
"database":"db_name", # DB名
"user":"user_name", # ユーザ
"password":"user_pass" # パスワード
}
con = psycopg2.connect(**dsn)
return con
ユーザ名とパスを隠蔽して入力
import getpass
user_name = input('Input user name: ')
user_pass = getpass.getpass('Input password: ')
def get_connection():
dsn = {
"host":"host_address", # ホスト名
"port":"port_number", # ポート番号
"database":"db_name", # DB名
"user":"user_name", # ユーザ
"password":"user_pass" # パスワード
}
con = psycopg2.connect(**dsn)
return con
クエリ実行関数
def send_query_df(sql: str):
with get_connection() as conn:
return pd.read_sql(sql=sql, con=conn)
def exec_query(sql: str):
with get_connection() as conn:
with conn.cursor() as cur:
return cur.execute(sql)
test
sql = "select * from pg_user order by usesysid;"
df = send_query_df(sql)
df
# f = open('./sql/xxx.sql',"r", encoding="utf-8")
# sql = f.read()
# # sql = 'select * from pg_user order by usesysid;'
# f.close()
# result_df = send_query_df(sql)
# os.makedirs('./sql_result/', exist_ok=True)
# result_df.to_csv('./sql_result/sql_result_1.csv', index=False)