Python PostgreSQL의 결과를 JSON으로 변환하기

2018. 9. 12. 19:14서버 프로그래밍

Node.js에서라면 JSON을 다루는 것이 무척 쉽지만, Python은 그렇지 않아서 적응이 안되었다.

psycopg2를 이용하여 PostgreSQL과 연동을 하는 것은 쉽지만, 넘어온 쿼리 결과를 JSON으로 쉽게 변경하는 방법이 없어 보였다.

결과적으로, pandas를 이용하여 데이터프레임 형태로 받아온 쿼리 결과를 JSON으로 변경하도록 처리하여 마무리 하였다.

import json
d = df1.to_dict(orient='records')
j = json.dumps(d)

https://stackoverflow.com/questions/50384883/convert-pandas-dataframe-to-json-object-pandas

convert pandas dataframe to json object - pandas


대부분의 레퍼런스에서 제시한 방법들은 동작하지 않았고, 이 방법만이 비교적 적은 노력으로 원하는 결과를 만들어주었다.

이렇게 만들어진 JSON 문자열을 JSON 객체로 변환해주면 끝.

>>> import json
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
['foo', {'bar': ['baz', None, 1.0, 2]}]

https://docs.python.org/3/library/json.html

json — JSON encoder and decoder


Python에서 PostgreSQL 연동 방법은 아래를 참고하면 된다.

http://sanghun.xyz/2016/11/python%EC%97%90%EC%84%9C-postgres-db-%EC%97%B0%EA%B2%B0%ED%95%B4%EC%84%9C-%EC%BF%BC%EB%A6%AC-%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0/