목적
python 에서 pandas로 PostgreSQL데이터를 읽어와 json 형식으로 사용하기 위함.
db = psycopg2.connect(
~~~~~
)
일단 PostgreSQL 접속부터 진행해서 객체 생성하고
def selectPD():
sql = "SELECT * FROM WT LIMIT 100"
result = pd.read_sql(sql,db)
print(result)
판다스의 read_sql 함수로 sql 쿼리와 db 객체를 같이 넘겨주면 pandas로 데이터 불러오는건 끝.
이제 데이터프레임을 JSON으로 변환해주면 되는데, datetime이나 Timestamp 자료형 데이터가 있는경우 변환시 TypeError: Object of type Timestamp is not JSON serializable 같은 에러가 발생한다.
이를 방지하기 위해 해당 데이터를 문자열로 변환해주는 작업이 필요하다.
def DFtoJSON(df):
df['timestamp'] = df['timestamp'].astype(str)
result = df.to_dict(orient='records')
jresult = json.dumps(result)
print(jresult)
이렇게 하면 JSON 형식으로 데이터를 받아볼 수 있다.