คำถามติดแท็ก pprint

2
ใช้การบันทึกการพิมพ์ผลลัพธ์ของ pprint
ฉันต้องการใช้เอาต์พุตของ pprint เพื่อแสดงโครงสร้างข้อมูลที่ซับซ้อน แต่ฉันต้องการส่งออกโดยใช้โมดูลการบันทึกแทนที่จะเป็น stdout ds = [{'hello': 'there'}] logging.debug( pprint.pprint(ds) ) # outputs as STDOUT
104 python  logging  pprint 

15
มีวิธีใดในการพิมพ์พจนานุกรมที่สั่งพิมพ์ได้อย่างถูกต้อง?
ฉันชอบโมดูล pprint ใน Python ฉันใช้มันมากในการทดสอบและแก้ไขข้อบกพร่อง ฉันมักใช้ตัวเลือกความกว้างเพื่อให้แน่ใจว่าเอาต์พุตพอดีกับหน้าต่างเทอร์มินัลของฉัน มันใช้งานได้ดีจนกว่าพวกเขาจะเพิ่มประเภทพจนานุกรมที่สั่งซื้อใหม่ใน Python 2.7 (คุณสมบัติที่ยอดเยี่ยมอีกอย่างที่ฉันชอบมาก) ถ้าฉันพยายามพิมพ์พจนานุกรมแบบเรียงลำดับสวย ๆ มันก็ไม่ได้แสดงอย่างสวยงาม แทนที่จะมีคู่คีย์ - ค่าแต่ละคู่ในบรรทัดของตัวเองสิ่งทั้งหมดจะแสดงเป็นบรรทัดยาวเส้นเดียวซึ่งตัดหลายครั้งและอ่านยาก ใครที่นี่มีวิธีที่จะทำให้มันพิมพ์ออกมาได้ดีเหมือนพจนานุกรมที่ไม่มีการเรียงลำดับแบบเก่า ๆ ? ฉันอาจคิดอะไรบางอย่างออกโดยอาจใช้เมธอด PrettyPrinter.format ถ้าฉันใช้เวลาพอสมควร แต่ฉันสงสัยว่ามีใครรู้วิธีแก้ปัญหาอยู่แล้ว UPDATE:ฉันยื่นรายงานข้อบกพร่องสำหรับสิ่งนี้ คุณสามารถดูได้ที่http://bugs.python.org/issue10592
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.