[Python] json.dumps() 사용법, 사용이유

2026. 3. 10. 10:59·Python

(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 데이터에 한글이 포함되어 있으면, 아래처럼 깨져 보이는 경우가 있다.

 
"\ud64d\uae38\ub3d9"
 

이를 방지하려면 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
'Python' 카테고리의 다른 글
  • [Python] 정규표현식
  • [Python] pytest를 이용한 테스트 코드 작성법
  • [Python] API 요청 방법
  • [Python] 라이브러리 관리하기
byhy0
byhy0
byhy0 님의 블로그 입니다.
  • byhy0
    byhy0 님의 블로그
    byhy0
  • 전체
    오늘
    어제
    • 분류 전체보기 (62)
      • T아카데미 (4)
      • Project (2)
      • Airflow (4)
      • Python (16)
        • Django (0)
      • Java (1)
      • Spring (4)
        • Board Project (3)
      • SQL (3)
      • Docker (1)
      • 클라우드 (2)
      • Error (3)
      • Git (5)
      • 코딩테스트 (12)
        • SQL (5)
        • Python (7)
      • TIL (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    T아카데미 #SK플래닛 #회고 #1주차
    Spring
    T아카데미#SK플래닛#데이터엔지니어2기
    git #github #repository 생성
    게시판
    #Python #정규표현식 #Regex #웹크롤링 #데이터처리
    #클라우드 #클라우드컴퓨팅 #CloudComputing #온프레미스 #CS기초 #IT인프라 #서버
    BigQuery #SQL
    오블완
    push #pull #git연동
    programmers #SQL #코딩테스트
    Git #설치법
    T아카데미 #2주차 회고 #데이터 엔지니어 2기
    vscode #git #git연동법
    programmers # 코딩테스트 #sql
    python #pytest #테스트
    T아카데미 #면접 #데이터 엔지니어 #K-Digital Traning
    API 요청 #API
    venv #파이썬 가상환경 #가상환경
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
byhy0
[Python] json.dumps() 사용법, 사용이유
상단으로

티스토리툴바