pprint란 무엇인가?
파이썬에는 print 메서드의 출력 결과를 깔끔하게 포맷팅해 주는 특별한 기능이 있는데, 이를 pretty print, 줄여서 pprint라고 부릅니다. 예를 들어 웹 URL에서 JSON 형식의 콘텐츠를 읽어올 때, 일반적인 print 함수를 사용하면 모든 내용이 한 줄로 길게 출력되어 읽고 이해하기가 매우 어렵습니다. 하지만 pprint를 적용하면 파이썬이 JSON 구조에 맞춰 키와 값들을 계층적으로 정리해 주기 때문에 훨씬 가독성이 높아집니다.
pprint 없이 출력하기
아래 프로그램은 웹 페이지의 JSON 콘텐츠를 전통적인 print 메서드로 그대로 출력합니다. 실행 결과 전체가 한 줄로 나오는 것을 확인할 수 있습니다.
예제 코드
import requests json_url_link = "https://pypi.org/pypi/sampleproject/json" result = requests.get(json_url_link) print(result.json())
출력 결과
위 코드를 실행하면 다음과 같은 결과가 나옵니다.
{'info': {'author': 'The Python Packaging Authority', 'author_email': 'pypa-dev@googlegroups.com', . . .pprint 적용하기
이번에는 동일한 콘텐츠에 pprint를 적용해 보겠습니다. 아래 출력 결과처럼 형식이 매우 체계적으로 정리되어 데이터 구조를 한눈에 파악할 수 있습니다.
예제 코드
import requests from pprint import pprint json_url_link = "https://pypi.org/pypi/sampleproject/json" result = requests.get(json_url_link) pprint(result.json())
출력 결과
위 코드를 실행하면 다음과 같은 결과가 나옵니다.
{'info': {'author': 'The Python Packaging Authority',
'author_email': 'pypa-dev@googlegroups.com',
'bugtrack_url': None,
'classifiers': ['Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',pprint의 유용한 옵션들
pprint는 기본 사용법 외에도 출력 형식을 세밀하게 조정할 수 있는 다양한 옵션을 제공합니다.
- width: 한 줄의 최대 문자 수를 지정합니다. 기본값은 80자입니다.
- indent: 각 중첩 수준마다 적용될 들여쓰기 공백 수를 지정합니다.
- depth: 출력할 중첩 구조의 최대 깊이를 제한합니다. 지정한 깊이를 초과하면 '...'으로 표시됩니다.
- sort_dicts: 딕셔너리 키를 알파벳 순으로 정렬할지 여부를 설정합니다(기본값은 True).
옵션 활용 예제
from pprint import pprint
data = {
'name': 'sampleproject',
'versions': ['1.0', '1.1', '1.2'],
'info': {'author': 'PyPA', 'license': 'MIT'}
}
# 폭 40자, 들여쓰기 4칸으로 출력
pprint(data, width=40, indent=4)이처럼 pprint는 API 응답, 설정 파일, 중첩된 딕셔너리나 리스트 등 복잡한 데이터 구조를 디버깅하거나 확인할 때 개발 생산성을 크게 높여주는 필수 도구입니다.