Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 pprint 모듈로 데이터 구조 보기 좋게 출력하기


파이썬 콘솔에서 복잡한 데이터 구조를 한눈에 알아보기 쉽게 출력하려면 pprint(pretty print) 모듈을 활용하면 됩니다. 일반적인 print() 함수는 중첩된 딕셔너리나 리스트를 한 줄에 길게 늘어뜨려 가독성이 떨어지지만, pprint 모듈은 객체의 내용을 적절히 줄바꿈하고 정렬해 사람이 읽기 편한 형태로 보여줍니다.

pprint 모듈을 사용하려면 먼저 다음과 같이 임포트해야 합니다.

import pprint

pprint 모듈에는 다양한 메서드가 제공되며, 주요 메서드는 다음과 같습니다.

pprint.pformat(object, indent=1, width=80, depth=None, *, compact=False)

객체를 서식화된 문자열 형태로 반환하는 메서드입니다. 들여쓰기(indent), 너비(width), 깊이(depth) 등의 정보를 인자로 전달해 원하는 출력 형식을 지정할 수 있습니다.

  • indent: 각 중첩 수준마다 추가되는 들여쓰기 양
  • width: 한 줄의 최대 출력 폭 (기본값 80자)
  • depth: 출력할 중첩 구조의 최대 깊이 (None이면 전체 출력)
  • compact: True로 설정하면 항목들을 가능한 한 같은 줄에 배치

pprint.pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False)

서식화된 객체 표현을 스트림에 직접 출력하는 메서드입니다. 별도의 스트림을 지정하지 않으면 기본적으로 sys.stdout(표준 출력)이 사용됩니다.

pprint.isreadable(object)

객체의 서식화된 표현이 읽기 가능한지 여부를 확인하는 메서드입니다. 판별 결과는 True 또는 False로 반환됩니다.

예제 코드

다음 예제는 JSON 파일을 읽어 들인 뒤, 일반 print()로 출력한 결과와 pprint()로 정렬해 출력한 결과를 비교합니다.

import pprint
import json
json_data = json.loads(open('sample_json.json', 'r').read())
print("The JSON Data:")
print(json_data)
if pprint.isreadable(json_data):
    print('The Data is Readable')
else:
    print('The Data is Not Readable')
print("\nThe JSON Data in correct format:")
pprint.pprint(json_data)

실행 결과

The JSON Data:
[{'name': 'Subhas', 'age': 25, 'city': 'Kolkata'}, {'name': 'Palash', 'age': 22, 'city': 'Delhi'}, {'name': 'Vivek', 'age': 23, 'city': 'Bangaluru'}]
The Data is Readable

The JSON Data in correct format:
[{'age': 25, 'city': 'Kolkata', 'name': 'Subhas'},
 {'age': 22, 'city': 'Delhi', 'name': 'Palash'},
 {'age': 23, 'city': 'Bangaluru', 'name': 'Vivek'}]

위 실행 결과에서 확인할 수 있듯이, 일반 print() 함수는 전체 데이터를 한 줄에 출력하지만 pprint()를 사용하면 각 항목이 개별 줄로 나뉘고 키가 정렬되어 훨씬 읽기 편한 형태가 됩니다. API 응답이나 설정 파일처럼 중첩된 JSON 데이터를 자주 다룬다면 pprint 모듈이 디버깅 시간을 크게 단축해 줄 것입니다.