Python으로 사전 인쇄하기
-
pprint()
를 사용하여 Python에서 사전 예쁜 인쇄 -
json.dumps()
를 사용하여 Python에서 사전을 예쁜 인쇄 -
yaml.dump()
를 사용하여 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_keys
가False
로 설정되고indent
는4
공백으로 설정됩니다.
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
의 출력을 능가합니다.
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에서 사전을 목록으로 변환
- 디렉토리의 모든 파일을 얻는 방법
- 파이썬 사전에서 최대 값을 찾는 방법
- 값으로 파이썬 사전을 정렬하는 방법
- 파이썬 2와 3에서 두 개의 사전을 병합하는 방법