Python으로 사전 인쇄하기

Rayven Esplanada 2023년10월10일
  1. pprint()를 사용하여 Python에서 사전 예쁜 인쇄
  2. json.dumps()를 사용하여 Python에서 사전을 예쁜 인쇄
  3. yaml.dump()를 사용하여 Python에서 사전 예쁜 인쇄
Python으로 사전 인쇄하기

이 튜토리얼은 파이썬으로 사전을 예쁘게 인쇄하는 방법을 소개합니다. 예쁜 인쇄 란 무언가를 더 읽기 쉬운 형식이나 스타일로 표현하는 것을 의미합니다.

pprint()를 사용하여 Python에서 사전 예쁜 인쇄

pprint는 Python 데이터 유형을보다 읽기 쉽게 인쇄 할 수있는 기능을 제공하는 Python 모듈입니다. 이 모듈은 예쁜 인쇄 사전도 지원합니다.

pprint 모듈 내에는 주어진 문자열이나 객체를 예쁘게 인쇄하는 데 사용되는 함수 인pprint()라는 이름의 함수가 있습니다.

먼저 사전 배열을 선언하십시오. 그런 다음pprint.pprint()함수를 사용하여 예쁘게 인쇄합니다.

import pprint

dct_arr = [
    {"Name": "John", "Age": "23", "Country": "USA"},
    {"Name": "Jose", "Age": "44", "Country": "Spain"},
    {"Name": "Anne", "Age": "29", "Country": "UK"},
    {"Name": "Lee", "Age": "35", "Country": "Japan"},
]

pprint.pprint(dct_arr)

출력:

[{'Age': '23', 'Country': 'USA', 'Name': 'John'},
 {'Age': '44', 'Country': 'Spain', 'Name': 'Jose'},
 {'Age': '29', 'Country': 'UK', 'Name': 'Anne'},
 {'Age': '35', 'Country': 'Japan', 'Name': 'Lee'}]

비교하기 위해 다음은 일반적인print()문의 출력입니다.

[
    {"Name": "John", "Age": "23", "Country": "USA"},
    {"Name": "Jose", "Age": "44", "Country": "Spain"},
    {"Name": "Anne", "Age": "29", "Country": "UK"},
    {"Name": "Lee", "Age": "35", "Country": "Japan"},
]

pprint()출력은 확실히 더 읽기 쉽습니다. 그것이하는 일은 쉼표 바로 뒤에서 배열의 각 사전 요소를 나누는 동시에 사전의 값을 키로 정렬하는 것입니다.

키-값 쌍을 키별로 정렬하지 않으려면pprint()는 정렬 메커니즘이 함수 내에 내장되어 있으므로 사용할 함수가 아닙니다.

주의해야 할 또 다른 점은pprint()가 중첩 된 사전을 포함하여 중첩 된 객체를 인쇄하지 않는다는 것입니다. 따라서 값이 중첩 될 것으로 예상하는 경우 이것이 해결책이 아닙니다.

json.dumps()를 사용하여 Python에서 사전을 예쁜 인쇄

Python json 모듈에는 Python 객체를 JSON 문자열로 변환하는dumps()라는 함수가 있습니다. 변환 외에도 사전을 예쁜 JSON 형식으로 형식화하므로 먼저 JSON으로 변환하여 사전을 예쁜 인쇄 할 수있는 실용적인 방법이 될 수 있습니다.

dumps()함수는 예쁘게 인쇄하는 데 사용되는 3 개의 매개 변수를받습니다. 변환 할 객체, 항목을 키별로 정렬해야하는지 여부를 결정하는 부울 값sort_keys, 공백 수를 지정하는indent 들여 쓰기를 위해.

이 솔루션에 대해 위와 동일한 예제 사전을 사용합니다. 정렬을 비활성화하려면sort_keysFalse로 설정되고indent4 공백으로 설정됩니다.

import json

dct_arr = [
    {"Name": "John", "Age": "23", "Country": "USA"},
    {"Name": "Jose", "Age": "44", "Country": "Spain"},
    {"Name": "Anne", "Age": "29", "Country": "UK"},
    {"Name": "Lee", "Age": "35", "Country": "Japan"},
]

print(json.dumps(dct_arr, sort_keys=False, indent=4))

출력:

[
    {
        "Age": "23",
        "Country": "USA",
        "Name": "John"
    },
    {
        "Age": "44",
        "Country": "Spain",
        "Name": "Jose"
    },
    {
        "Age": "29",
        "Country": "UK",
        "Name": "Anne"
    },
    {
        "Age": "35",
        "Country": "Japan",
        "Name": "Lee"
    }
]

pprint()함수의 출력에 비해 훨씬 더 읽기 쉽지만, 예쁜 JSON 형식이기 때문에 더 많은 라인이 필요합니다.

주어진 값에 중첩 된 사전이 있으면 어떻게됩니까? 예제를 약간 편집하고 출력을 살펴 보겠습니다.

import json

dct_arr = [
    {"Name": "John", "Age": "23", "Residence": {"Country": "USA", "City": "New York"}},
    {"Name": "Jose", "Age": "44", "Residence": {"Country": "Spain", "City": "Madrid"}},
    {"Name": "Anne", "Age": "29", "Residence": {"Country": "UK", "City": "England"}},
    {"Name": "Lee", "Age": "35", "Residence": {"Country": "Japan", "City": "Osaka"}},
]

print(json.dumps(dct_arr, sort_keys=False, indent=4))

출력:

[
    {
        "Name": "John",
        "Age": "23",
        "Residence": {
            "Country": "USA",
            "City": "New York"
        }
    },
    {
        "Name": "Jose",
        "Age": "44",
        "Residence": {
            "Country": "Spain",
            "City": "Madrid"
        }
    },
    {
        "Name": "Anne",
        "Age": "29",
        "Residence": {
            "Country": "UK",
            "City": "England"
        }
    },
    {
        "Name": "Lee",
        "Age": "35",
        "Residence": {
            "Country": "Japan",
            "City": "Osaka"
        }
    }
]

분명히 예쁜 JSON 중첩 사전은json.dump()를 사용하여 지원되며 시각적으로 중첩되어 있어도 깔끔하고 읽기 쉽습니다.

yaml.dump()를 사용하여 Python에서 사전 예쁜 인쇄

사전을 예쁘게 인쇄하는 또 다른 방법은yaml 모듈의dump()함수를 사용하는 것입니다. json.dumps()함수와 동일한 목적을 제공하지만 JSON 대신 YAML 형식입니다.

먼저pip를 사용하여 YAML 모듈을 설치합니다.

pip install pyyaml

또는 Python 3 및pip3을 사용하는 경우 :

pip3 install pyyaml

JSON 예제에 사용 된 동일한 중첩 예제를 사용해 보겠습니다.

덤프의 출력 스타일이 inline인지 block인지를 결정하는 새 매개 변수 default_flow_style을 기록해 둡니다. 이 경우 출력은 읽을 수 있기를 원하므로 블록 스타일이어야하므로이 매개 변수를 False로 설정하십시오.

import yaml

dct_arr = [
    {"Name": "John", "Age": "23", "Residence": {"Country": "USA", "City": "New York"}},
    {"Name": "Jose", "Age": "44", "Residence": {"Country": "Spain", "City": "Madrid"}},
    {"Name": "Anne", "Age": "29", "Residence": {"Country": "UK", "City": "England"}},
    {"Name": "Lee", "Age": "35", "Residence": {"Country": "Japan", "City": "Osaka"}},
]

print(yaml.dump(dct_arr, sort_keys=False, default_flow_style=False))

출력:

- Name: John
  Age: '23'
  Residence:
    Country: USA
    City: New York
- Name: Jose
  Age: '44'
  Residence:
    Country: Spain
    City: Madrid
- Name: Anne
  Age: '29'
  Residence:
    Country: UK
    City: England
- Name: Lee
  Age: '35'
  Residence:
    Country: Japan
    City: Osaka

요약하면 YAML dump()함수가 JSON dumps()보다 더 읽기 쉬운 지 여부는 주관적입니다. 개인 취향 또는 필요한 출력 유형에 달려 있습니다. 더 복잡한 데이터 구조 나 중첩 된 객체의 경우 두 함수 모두pprint의 출력을 능가합니다.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

관련 문장 - Python Dictionary

관련 문장 - Python Print