본문 바로가기

Tech/Postgresql

Postgresql 리스트 데이터 넣기

Sqlalchemy, alembic, Postgresql

Json에서 리스트 데이터를 파싱 후, Postgresql에 넣어야 할 일이 생겼다.

리스트 데이터를 Postgresql에 적재하기 위해서는

Postgresql에서 선언한 테이블의 컬럼 타입을 sqlalchemy.ARRAY(<TYPE>)로 사용해야한다.

나는 ['A','B','C'] 와 같은 리스트 데이터를 Postgresql에 넣고 싶었고, sqlalchemy.ARRAY(sqlalchemy.TEXT())로 컬럼을 생성했다.

PgAdmin에서 만들어진 컬럼을 확인하면, Type이 TEXT[]로 생성된 것을 볼 수 있다.

 


image




하지만, 만든 컬럼에 리스트 데이터를 넣게되면, 생각과는 다르게 값이 들어가게 된다.


나는 ['A', 'B', 'C']를 넣었지만, PgAdmin에서 확인결과는 {'A', 'B', 'C'}와 같이 대괄호가 중괄호로 바뀌는 것을 볼 수 있다.

 


image




중괄호로 바뀌는 이유는 아래 링크를 참고하면된다.

https://www.javaer101.com/ko/article/122961341.html



하지만, sqlalchemy의 query 함수를 통해 해당 테이블의 컬럼을 조회하면, []로 데이터가 정상 출력되는 것을 확인 할 수 있다.


image


sqlalchemy query 함수?
ex.)

from sqlalchemy.orm import Session

Session.query()
반응형