반응형

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에서는 유니코드를 유니코드 문자열 그대로 둔 채로 변환한다.

유니코드 문자를 어떻게 처리할 지 경우에 따라 맞춰서 사용하면 될 듯.



반응형
블로그 이미지

Bryan_

,