Nice programing

여러 줄에 사전 pprint

nicepro 2020. 12. 7. 20:42
반응형

여러 줄에 사전 pprint


사전의 예쁜 인쇄물을 얻으려고 노력하고 있지만 운이 없습니다.

>>> import pprint
>>> a = {'first': 123, 'second': 456, 'third': {1:1, 2:2}}
>>> pprint.pprint(a)
{'first': 123, 'second': 456, 'third': {1: 1, 2: 2}}

출력이 다음과 같이 여러 줄에 표시되기를 원했습니다.

{'first': 123,
 'second': 456,
 'third': {1: 1,
           2: 2}
}

할 수 있습니까 pprint? 그렇지 않은 경우 어떤 모듈이 수행합니까? 저는 Python 2.7.3을 사용하고 있습니다.


사용 width=1또는 width=-1:

In [33]: pprint.pprint(a, width=1)
{'first': 123,
 'second': 456,
 'third': {1: 1,
           2: 2}}

dict를 json으로 변환 할 수 있습니다. json.dumps(d, indent=4)

print(json.dumps(item, indent=4))
{
    "second": 456,
    "third": {
        "1": 1,
        "2": 2
    },
    "first": 123
}

환경 변수를 예쁘게 인쇄하려는 경우 다음을 사용하십시오.

pprint.pprint(dict(os.environ), width=1)

Ryan Chou의 이미 매우 유용한 답변에 추가 할 두 가지 사항 :

  • sort_keys당신의 dict, esp에 대한 더 쉬운 시각적 grok에 대한 인수를 전달하십시오 . 3.6 이전 Python으로 작업하는 경우 (사전 순서가 지정되지 않음)
print(json.dumps(item, indent=4, sort_keys=True))
"""
{
    "first": 123,
    "second": 456,
    "third": {
        "1": 1,
        "2": 2
    }
}
"""
  • dumps() 사전 키가 프리미티브 (문자열, 정수 등) 인 경우에만 작동합니다.

참고URL : https://stackoverflow.com/questions/20171392/pprint-dictionary-on-multiple-lines

반응형