(1) 서론
프로젝트를 진행하다 보면 API를 통해 JSON 형태의 데이터를 받아오는 경우가 많다.
나 역시 API를 호출해 데이터를 받아왔는데, 문제는 한 줄로 뭉쳐진 JSON 형태로 전달되어 구조를 파악하기가 매우 어려웠다는 점이었다.
처음에는 어떤 키에 어떤 값이 들어있는지 한눈에 보이지 않아 디버깅에도 많은 시간이 걸렸다.
이 문제를 해결하기 위해 파이썬의 json.dumps() 함수를 활용해 JSON 데이터를 보기 좋게 정리(pretty print) 하는 방법을 사용하게 되었고, 이번 글에서는 그 사용법을 정리해보고자 한다.
(2) 사용법
1. 기본 JSON 데이터 예시
API에서 받아온 데이터는 보통 아래와 같은 형태로 생겼다.
data = {"name":"홍길동","age":25,"address":{"city":"Seoul","zip":"12345"},"hobby":["reading","game","movie"]}
이처럼 한 줄로 되어 있으면 구조를 파악하기가 어렵다.
2. json 모듈 불러오기
먼저 json 모듈을 import 해준다.
import json
3. json.dumps() 기본 사용법
json.dumps()는 파이썬 객체를 JSON 문자열로 변환해주는 함수이다.
기본 형태는 다음과 같다.
json.dumps(객체)
예시:
result = json.dumps(data)
print(result)
하지만 이렇게 출력하면 여전히 한 줄로 나온다.
4. indent 옵션으로 가독성 높이기
가장 중요한 옵션은 indent이다.
result = json.dumps(data, indent=4)
print(result)
출력 결과:
{
"name": "홍길동",
"age": 25,
"address": {
"city": "Seoul",
"zip": "12345"
},
"hobby": [
"reading",
"game",
"movie"
]
}
들여쓰기가 적용되어 구조를 한눈에 파악할 수 있다.
보통 indent=2 또는 indent=4를 많이 사용한다.
5. 한글 깨짐 방지 (ensure_ascii 옵션)
JSON 데이터에 한글이 포함되어 있으면, 아래처럼 깨져 보이는 경우가 있다.
이를 방지하려면 ensure_ascii=False 옵션을 추가하면 된다.
result = json.dumps(data, indent=4, ensure_ascii=False)
print(result)
-> 한글이 정상적으로 출력된다.
6. 정렬 옵션 (sort_keys)
키를 알파벳 순으로 정렬하고 싶을 때는 sort_keys=True를 사용한다.
result = json.dumps(data, indent=4, ensure_ascii=False, sort_keys=True)
print(result)
-> JSON 구조를 일정한 기준으로 정리할 수 있어 관리하기 편하다.
자주 사용하는 옵션 정리
| indent | 들여쓰기 설정 |
| ensure_ascii | 한글 깨짐 방지 |
| sort_keys | 키 정렬 |
실무에서 가장 많이 쓰는 형태:
json.dumps(data, indent=4, ensure_ascii=False)
프로젝트에 적용해 본 결과 반환 값:

(3) 마무리
API를 통해 받은 JSON 데이터는 대부분 한 줄로 되어 있어 가독성이 매우 떨어진다.
이 상태로는 데이터 구조를 파악하기 어렵고, 디버깅에도 많은 시간이 소요된다.
하지만 json.dumps()에 indent 옵션만 추가해도 데이터를 훨씬 보기 쉽게 정리할 수 있다.
특히,
- API 테스트
- 로그 확인
- 디버깅
- 데이터 구조 분석
과정에서 매우 유용하게 사용할 수 있다.
앞으로 JSON 데이터를 다룰 일이 있다면, json.dumps(indent=4, ensure_ascii=False)를 습관처럼 사용해보자.
작은 차이지만 개발 생산성을 크게 높여주는 방법이다.
'Python' 카테고리의 다른 글
| [Python] 정규표현식 (0) | 2026.03.13 |
|---|---|
| [Python] pytest를 이용한 테스트 코드 작성법 (0) | 2026.03.11 |
| [Python] API 요청 방법 (0) | 2026.03.09 |
| [Python] 라이브러리 관리하기 (0) | 2026.03.07 |
| [Python] 리스트 컴프리헨션 & 조건부 표현식 | 코딩 테스트에 자주 나오는 풀이 방식 (0) | 2026.03.06 |