파이썬의 리스트, 딕셔너리 등의 데이터를 print() 함수로 콘솔에 출력하여 디버깅하는 경우 데이터의 구조를 한 눈에 확인하기 어려울 때가 많습니다. 이런 경우에는 pprint() 함수를 사용하면 조금 더 예쁘게 데이터를 확인할 수 있습니다. pprint에서 앞에 붙은 p는 pretty에서 따온 것입니다.
pprint 모듈에 대한 공식 소개는 다음과 같습니다[1].
pprint 모듈은 임의의 파이썬 데이터 구조를 인터프리터의 입력으로 사용할 수 있는 형태로 “예쁘게 인쇄”할 수 있는 기능을 제공합니다. 포맷된 구조에 기본 파이썬 형이 아닌 객체가 포함되면, 표현은 로드되지 않을 수 있습니다. 파일, 소켓 또는 클래스와 같은 객체뿐만 아니라 파이썬 리터럴로 표현할 수 없는 다른 많은 객체가 포함된 경우입니다.
포맷된 표현은 할 수 있다면 객체를 한 줄에 유지하고, 허용된 너비에 맞지 않으면 여러 줄로 나눕니다.
이해를 돕기 위해 간단한 예시 코드를 만들어봤습니다.
from pprint import pprint
list_data = [
[1, 2, 3, 4, 5, 6, 7, 8],
[5, 6, 7, 8, 9, 10, 11, 12],
[9, 10, 11, 12, 13, 14, 15, 16],
[13, 14, 15, 16, 17, 18, 19, 20]
]
dict_data = {
"name": "홍길동",
"age": 999,
"nationality": "Republic of Korea",
"address": "Seoul"
}
print("======print 출력 결과")
print(list_data)
print(dict_data)
# ======print 출력 결과
# [[1, 2, 3, 4, 5, 6, 7, 8], [5, 6, 7, 8, 9, 10, 11, 12], [9, 10, 11, 12, 13, 14, 15, 16], [13, 14, 15, 16, 17, 18, 19, 20]]
# {'name': '홍길동', 'age': 999, 'nationality': 'Republic of Korea', 'address': 'Seoul'}
print("======pprint 출력 결과")
pprint(list_data)
pprint(dict_data)
# ======pprint 출력 결과
# [[1, 2, 3, 4, 5, 6, 7, 8],
# [5, 6, 7, 8, 9, 10, 11, 12],
# [9, 10, 11, 12, 13, 14, 15, 16],
# [13, 14, 15, 16, 17, 18, 19, 20]]
# {'address': 'Seoul',
# 'age': 999,
# 'name': '홍길동',
# 'nationality': 'Republic of Korea'}
보시다시피 pprint() 함수를 사용하면 알아서 적절한 위치에서 개행이 되어서 훨씬 더 가독성이 좋은 것을 알 수 있습니다.
참고자료
'Dev > python' 카테고리의 다른 글
[python] 파이썬은 동적타입 언어이자, 강타입 언어 (0) | 2023.10.13 |
---|---|
[python] __new__ 메서드를 활용하여 싱글턴 패턴 구현하기 (0) | 2023.10.09 |
[pandas] 데이터프레임 짝수행, 홀수행 선택하기 (0) | 2023.10.07 |
[sqlalchemy] 여러 컬럼 기준으로 정렬하기, order_by() 메서드 (0) | 2023.10.07 |
[pandas] 데이터프레임 특정 조건 행 삭제, drop() 메서드 활용 (0) | 2023.10.06 |
[python] 2023년 12월 13일부터 boto3는 파이썬 3.7버전을 지원하지 않습니다 (0) | 2023.09.30 |
[python] 한줄로 if, else문 만들기 (삼항연산자) (0) | 2023.09.28 |
[python] 타입 체크시에는 type() 대신에 isinstance()를 활용하라 (0) | 2023.09.27 |