본문 바로가기
Python

[Python] pprint 모듈 사용해보기

by teamnova 2023. 2. 3.
728x90

안녕하세요.

오늘은 파이썬의 기본 모듈인 pprint를 사용해보겠습니다.

 

pprint 에서 'pp'는 pretty print 의 줄임말입니다. pprint는 데이터를 보기 좋게 출력할 때 사용하면 좋은 모듈로, 구조가 복잡한 JSON 데이터를 디버깅 용도로 출력할 때 자주 사용합니다.

 

json 데이터를 pprint 모듈을 사용하지 않고 기본 print() 를 사용해서 출력해보겠습니다.

from urllib import request
import json

response = request.urlopen("https://jsonplaceholder.typicode.com/users/1")
json_response = response.read()
users = json.loads(json_response)
print(users)

결과는 다음과 같습니다. 중첩된 json 구조를 한눈에 파악하기 쉽지 않습니다.

 

 

이번에는 pprint 모듈을 사용해서 같은 데이터를 출력하겠습니다.

from urllib import request
import json
from pprint import pprint

response = request.urlopen("https://jsonplaceholder.typicode.com/users/1")
json_response = response.read()
users = json.loads(json_response)
pprint(users)

결과는 다음과 같습니다. 중첩된 json 구조를 한눈에 파악하기 쉬워졌습니다.

 

 

pprint 출력 옵션을 지정해줄 수도 있습니다. 옵션들 중에 'depth' 를 사용해보겠습니다.

'depth'는 중첩된 데이터의 출력 수준을 결정합니다. 기본값은 None으로 중첩된 데이터를 생략 없이 전부 표시합니다.

depth 옵션에 각각 1, 2를 설정해보겠습니다.

 

먼저 depth=1 일 때입니다.

response = request.urlopen("https://jsonplaceholder.typicode.com/users/1")
json_response = response.read()
users = json.loads(json_response)
pprint(users, depth=1)

 

 

다음은 depth=2 일 때입니다.

response = request.urlopen("https://jsonplaceholder.typicode.com/users/1")
json_response = response.read()
users = json.loads(json_response)
pprint(users, depth=2)

 

이렇게 depth 옵션을 통해 출력될 중첩 데이터의 수준을 결정할 수 있습니다.

 

그 외에 indent, width 등의 옵션들이 있고 자세한 내용은 https://docs.python.org/3/library/pprint.html 에서 확인하실 수 있습니다.