前提・実現したいこと
pandasのread_sqlでpostgresからデータを読み込みたいのですが、少し気になることがあるので質問させてください。
psycopg2を用いる場合は、コネクションを確立させて、コネクションをクローズする、という手順を踏むものと思っているのですが、
sqlalchemyを用いる場合でも、直接create_engine
を渡せば、値を引っ張ってこれると思います。
この場合はセッションをcloseする、という手順は必要ないのでしょうか?
もし必要ないのであれば、余計な心配も手間も減るので活用しようと思っています。
pandasのオンラインリファレンスを読んでもよくわからなかったので、お教えいただけると幸いです。
該当のソースコード
python
1import pandas as pd 2import psycopg2 3connection_config = {'host':'HOST','port':'PORT','database':'DATABASE','user':'USER','password':'PASS'} 4 5#それぞれでconnectしてcloseする場合 6conn=psycopg2.connect(**connection_config) 7df=pd.read_sql('select * from table',con=conn) 8conn.close() 9 10#with構文で書いた場合 11with psycopg2.connect(**connection_config) as conn: 12 df=pd.read_sql('select * from table',con=conn)
python
1import pandas as pd 2from sqlalchemy import create_engine 3engine = create_engine('postgresql://{user}:{password}@{host}:{port}/{database}'.format(**connection_config)) 4 5#sqlalchemyのcreate_engineで渡した場合 6df=pd.read_sql('select * from table',con=engine)
補足情報(FW/ツールのバージョンなど)
python
1sys.version: 3.7.7 (default, Mar 23 2020, 23:19:08) [MSC v.1916 64 bit (AMD64)] 2pd.__version__: 1.0.3 3psycopg2.__version__: 2.8.4 (dt dec pq3 ext lo64) 4sqlalchemy.__version__: 1.3.15
以上、よろしくお願いいたします。
あなたの回答
tips
プレビュー