[Python Coding Tip] JSON 결과를 보기 좋게 정렬하는 방법

Posted by

JSON (JavaScript Object Notation)은 데이터 교환 형식으로 널리 사용되며, 사람과 기계가 모두 읽기 쉽게 설계되었다. 그러나 대량의 JSON 데이터를 다룰 때는 데이터를 보기 좋게 정렬하여 가독성을 높이는 것이 중요하다. 이번 포스트에서는 Python에서 JSON 데이터를 보기 좋게 정렬하는 방법에 대해 알아보도록 하자.

JSON 데이터 정렬의 중요성

JSON 데이터는 짧을 때는 가독성이 좋지만, 데이터가 많아진다면, 가독성이 급격히 나빠지기 시작한다. 따라서 JSON 데이터를 보기 좋게 정렬하면 다음과 같은 이점이 있다

  • 가독성 향상: 사람이 데이터를 쉽게 읽고 이해할 수 있다.
  • 디버깅 용이: 복잡한 데이터 구조를 분석하고 문제를 쉽게 찾을 수 있다.
  • 버전 관리: 정렬된 JSON 데이터는 버전 관리 시스템에서의 차이를 쉽게 확인할 수 있다.

Python에서 JSON 데이터 정렬 방법

Python의 json 모듈을 사용하여 JSON 데이터를 보기 좋게 정렬할 수 있다. 이를 위해서는 json.dumps 또는 json.jump 함수의 indent 매개변수를 사용할 수 있다.

json.dumps 함수 사용

json.dumps 함수는 Python 객체를 JSON 문자열로 변환하며, 이때, indent 매개변수를 사용하여 결과를 들여쓰기 할 수 있다. 일반적으로 tab을 사용하여 정렬하므로 indent=4 라고 하여 정렬할 수 있다.

import json

# 예제 JSON 데이터
data = {
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "skills": ["Python", "Machine Learning", "Data Science"]
}

# 정렬하지 않고 출력
print(data)

# 보기 좋게 정렬 후 출력
json_string = json.dumps(data, indent=4)
print(json_string)

위 예제 코드의 JSON 데이터를 정렬하지 않고 출력한다면 다음과 같은 결과를 볼 수 있다.

{'name': 'Alice', 'age': 30, 'city': 'New York', 'skills': ['Python', 'Machine Learning', 'Data Science']}

하지만 json.dumps 함수를 사용한다면 다음과 같이 들여쓰기 된 JSON 문자열을 출력하게 된다.

{
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "skills": [
        "Python",
        "Machine Learning",
        "Data Science"
    ]
}

json.dump 함수 사용

json.dump 함수는 Python 객체를 JSON 파일로 저장할 때 사용한다. 이 함수에서도 indent 매개변수를 사용하여 결과를 들여쓰기 할 수 있다.

import json

# 예제 JSON 데이터
data = {
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "skills": ["Python", "Machine Learning", "Data Science"]
}

# JSON 데이터를 보기 좋게 파일로 저장
with open("data.json", "w") as json_file:
    json.dump(data, json_file, indent=4)

위 코드는 JSON 데이터를 data.json 파일에 들여쓰기 된 형식으로 저장한다.


추가 옵션: keys 정렬

JSON 데이터를 정렬할 때, 키를 알파벳 순으로 정렬하면 가독성이 더욱 향상시킬 수 있다. 이를 위해 sort_keys 매개변수를 True로 설정하여 알파벳 순으로 정렬할 수 있다.

import json

# 예제 JSON 데이터
data = {
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "skills": ["Python", "Machine Learning", "Data Science"]
}

# JSON 데이터를 보기 좋게 정렬하고, 키를 알파벳 순으로 정렬
json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)

위 코드는 다음과 같이 알파벳 순으로 정렬된 JSON 문자열을 출력한다

{
    "age": 30,
    "city": "New York",
    "name": "Alice",
    "skills": [
        "Python",
        "Machine Learning",
        "Data Science"
    ]
}

결론

Python의 json 모듈을 사용하여 JSON 데이터를 보기 좋게 정렬하는 방법에 대해 알아보았다. indent 매개변수를 사용하여 들여쓰기 된 JSON 데이터를 생성하고, sort_keys 매개변수를 사용하여 키를 알파벳 순으로 정렬할 수 있다. 이러한 방법을 통해 JSON 데이터를 더 쉽게 읽고, 디버깅하며, 관리할 수 있다. JSON 데이터 정렬은 특히 대규모 데이터 처리 및 분석 작업에서 유용한 도구이므로 사용방법을 익혀 놓는다면 잘 활용할 수 있을 것이다.

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다