Tested OS: Ubuntu 14.04
Python: 2.7.6
Firebase 같은 곳에서 json 파일을 다운로드 받으면, 개행문자(newline)와 들여쓰기 없이 모두 붙어 있어서 눈으로 확인하기 힘들다. 이것을 사람이 보기 좋게 공백과 들여쓰기를 적용해서 변환하는 방법으로 여러 가지가 있겠지만, 비교적 간단한 두 가지 방법은 파이썬의 json 도구를 쓰거나 jq를 쓰는 방법이다.
1. Python의 json.tool 사용
$ python -m json.tool [original_file]
위와 같이 하면 화면에 출력된다. 바로 텍스트 파일에 저장하려면, 리다이렉션(redirection)을 쓰거나, argument로 저장될 파일 이름을 하나 더 써 준다.
$ python -m json.tool [original_file] [new_file]
$ python -m json.tool [original_file] > [new_file]
2. jq 사용
시스템에 jq가 미리 설치되어 있어야 함.
$ jq '.' [original_file]
위와 같이 하면 화면에 출력되고, 텍스트 파일에 저장하려면 리다이렉션 사용:
$ jq '.' [original_file] > [new_file]
15MB 정도 되는 json 파일을 테스트해 본 결과, 처리 시간은 jq가 더 빠르게 나왔다.
파이썬에서도 argument를 쓰는 방법보다 redirection이 근소하게 더 빨랐다.
(json 파일을 보기 좋게 처리하는 데 걸린 시간. jq, python with redirection, python with argument 순서대로 빨랐다.)
참고로 jq로 변환하면, 원본 json 파일에 유니코드로 적혀 있는 글자들(e.g. 한글)은 모두 자동으로 사람이 읽을 수 있는 한글 문자로 변환된다.
python에서는 유니코드를 유니코드 문자열 그대로 둔 채로 변환한다.
유니코드 문자를 어떻게 처리할 지 경우에 따라 맞춰서 사용하면 될 듯.
'IT > Linux' 카테고리의 다른 글
Ubuntu 16.04 + Google Chrome 브라우저 == Dropbox install failure (0) | 2017.08.20 |
---|---|
Ubuntu 호스트 이름(hostname) 변경 후 unable to resolve host 에러 발생하는 경우 (0) | 2017.07.07 |
VIM에서 모든 탭(tab)문자를 일정 크기의 공백(space) 문자열로 바꾸기 (0) | 2017.04.24 |
우분투(Ubuntu)에 파일 오른쪽 메뉴 Open With에서 wine 관련 항목들 제거하기 (0) | 2017.04.18 |
awk 코드를 여러 라인에 걸쳐서 작성하기 (0) | 2017.04.06 |