본문 바로가기

터미널에서 JSON 데이터 예쁘게 보기

기술적인 이야기/터미널 및 셸 2024. 10. 3.
반응형

인코딩 방식에 따라 다르긴 하지만 대체로 파일로 저장된 JSON 데이터는 개행이나 들여쓰기가 다 사라져서 눈으로 읽기 난감한 경우가 많다. 이럴 때는 어느 정도 자동으로 포매팅해서 읽는 방법을 쓸 수 있다. 이 글에서는 대충 두 가지 방법을 정리해 본다.

 

이런 데이터를 봤다면 아마도 이 글이 유용할 것이다

 

파이썬의 json.tool 활용

Python 2.6 이상에서 사용 가능한 방법으로 json.tool이라는 모듈을 이용하면 JSON 데이터를 재정렬해서 읽기 편하게 변경할 수 있다. 예를 들자면 아래와 같은 방식으로 쓸 수 있다.

echo '{"name": "Conrad", "age": 999}' | python -m json.tool

위 예제를 실제로 셸에서 실행시켜 보면 아래와 같이 출력된다.

$ echo '{"name": "Conrad", "age": 999}' | python -m json.tool
{
    "name": "Conrad",
    "age": 999
}

파이프로 수행하기 때문에 cat 등을 이용하면 특정 파일의 내용도 좀 더 읽기 편하게 볼 수 있다.

cat somefile.json | python -m json.tool

 

jq 활용

jq라는 CLI 유틸리티를 활용해도 역시 JSON 데이터를 좀 더 편하게 읽을 수 있다. 대충 아래와 같은 식으로 쓸 수 있다.

$ echo '{"name": "Conrad", "age": 999}' | jq .
{
  "name": "Conrad",
  "age": 999
}

설정에 따라 다르겠지만 개인적으로 별다른 설정을 하지 않은 상태에서 무려 컬러로 나왔다. 들여쓰기 레벨이 다르게 보이는데 역시 설정에 따라 다를 것이다.

 

이 유틸리티 역시 파이프를 쓸 수 있기 때문에 cat 등으로 파일의 내용도 예쁘게 볼 수 있다. 다만 파일의 내용 읽기는 jq 만으로도 가능하다.

jq . filename.json

혹시 컬러로 보고 싶다면 --color-output 옵션을 붙여주자.

jq --color-output . filename.json

더 많은 방법이 있을 수 있지만 개인적으로 자주 쓰는 두 가지 도구의 예는 이렇다.

728x90
반응형

댓글