pprint의 출력을 사용하여 복잡한 데이터 구조를 표시하고 싶지만 stdout이 아닌 로깅 모듈을 사용하여 출력하고 싶습니다.
ds = [{'hello': 'there'}]
logging.debug( pprint.pprint(ds) ) # outputs as STDOUT
답변
사용 pprint.pformat
하여 문자열을 가져온 다음 로깅 프레임 워크로 보냅니다.
from pprint import pformat
ds = [{'hello': 'there'}]
logging.debug(pformat(ds))
답변
이 솔루션은 위하지 않았다 꽤 나는 또한 때 로깅 이름과 levelname을 추가 할 포맷을 사용하고 있기 때문에 나를 위해 그것을 잘라. 약간 어수선 해 보입니다.
__main__ : DEBUG : ['aaaaaaaaaaaaaaaaaaaa',
'bbbbbbbbbbbbbbbbbbbb',
'cccccccccccccccccccc',
'dddddddddddddddddddd']
__main__ : DEBUG : Some other logging text
더 우아한 해결책이있을 수 있지만 다음과 같습니다.
for line in pprint.pformat(ds).split('\n'):
logging.debug(line)
좀 더 좋은 것을 생성합니다.
__main__ : DEBUG : ['aaaaaaaaaaaaaaaaaaaa',
__main__ : DEBUG : 'bbbbbbbbbbbbbbbbbbbb',
__main__ : DEBUG : 'cccccccccccccccccccc',
__main__ : DEBUG : 'dddddddddddddddddddd']
__main__ : DEBUG : Some other logging text