본문 바로가기

운동하는 개발자/Windows

python postgreSQL 연결, select 파싱(psycopg2)

728x90

우선 파이썬에 postgreSQL 연결을 위한 psycopg2  설치

pip install psycopg2

 

DB 연결 및 Select 데이터 파싱 부분

import psycopg2 as pg2
from dataclasses import dataclass

#파싱데이터 저장을 위한 데이터클래스(구조체 역할)
@dataclass
class site:
    title: str = ''
    link: str = ''
    description: str = ''


#데이터 파싱 함수
def siteParsing(siterow):
    tempsite = site()
    tempsite.title = siterow[0]
    tempsite.link = siterow[1]
    tempsite.description = siterow[2]

    return tempsite


#메인함수
if __name__ == "__main__":    

    try:
    #DB 연결
        conn = pg2.connect("host = 127.0.0.1 dbname=postgres user=userID password=password")
        conn.autocommit = True
        cur = conn.cursor()
        
	#쿼리 명령 후 데이터 파싱
        cur.execute('select * from site')
        sitelist = cur.fetchone()

	#select 결과값이 2개 이상의 레코드를 가지면 반복문을 통해서 리스트인덱스로 접근
    # 예: sitelist[0],
        getsite = siteParsing(sitelist)

        print(getsite)

    except Exception as e:
        print(e)
    finally:
        if conn:
            conn.close​

분명 쓰기 편하게 만든 라이브러리가 있을 텐데.. 못 찾아서 임시로 만듦

 

추가로 dataclass 설명

2021.04.10 - [운동하는 개발자/Python] - Python에서 구조체 사용하기 (how to use struct in python) dataclass

 

Python에서 구조체 사용하기 (how to use struct in python) dataclass

db에서 읽어온 값을 구조체로 파싱 해서 사용하고 싶었는데 구조체는 없었고 파이썬 3.7부터 지원하는 dataclass가 있어 이거로 사용해보았다 (공식문서를 읽어보니 구조체로 쓰라고 만든 의도는

singo112ok.tistory.com


728x90