본문 바로가기
Python/Python FAQ

Python 중첩된 딕셔너리를 예쁘게 출력하는 방법은 무엇인가요?, How to pretty print nested dictionaries?

by 베타코드 2023. 10. 8.
반응형

질문


파이썬에서 depth가 약 4인 딕셔너리를 어떻게 예쁘게 출력할 수 있을까요? pprint()를 사용하여 예쁘게 출력을 시도해보았지만 작동하지 않았습니다:

import pprint 
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(mydict)

저는 각 중첩에 대해 들여쓰기 ("\t")를 원하며, 다음과 같은 결과를 얻고 싶습니다:

key1
    value1
    value2
    key2
       value1
       value2

어떻게 이를 할 수 있을까요?


답변


내 첫 번째 생각은 JSON 직렬화기가 중첩된 사전에 대해 아마도 꽤 잘 작동한다는 것이었으므로, 그걸 이용해서 속임수를 써볼까 생각했습니다:

>>> import json
>>> print(json.dumps({'a':2, 'b':{'x':3, 'y':{'t1': 4, 't2':5}}},
...                  sort_keys=True, indent=4))
{
    "a": 2,
    "b": {
        "x": 3,
        "y": {
            "t1": 4,
            "t2": 5
        }
    }
}
반응형

댓글