相关疑难解决方法(0)

有没有什么方法可以正确地打印有序的词典?

我喜欢Python中的pprint模块.我经常使用它进行测试和调试.我经常使用width选项来确保输出在我的终端窗口中很好地适应.

它一直运行良好,直到他们在Python 2.7中添加了新的有序字典类型(我非常喜欢的另一个很酷的功能).如果我试着漂亮地打印一个有序的字典,它就不能很好地显示出来.而不是将每个键值对放在它自己的行上,整个事物显示在一条长行上,它包含很多次并且难以阅读.

这里有没有人有办法让它打印得很好,就像旧的无序词典一样?如果我花了足够的时间,我可能会想出一些东西,可能使用PrettyPrinter.format方法,但我想知道这里是否有人知道解决方案.

更新:我为此提交了一份错误报告.您可以在http://bugs.python.org/issue10592上看到它.

python pretty-print ordereddictionary python-2.7 pprint

91
推荐指数
6
解决办法
5万
查看次数

如何让我的类在Python中可打印?

Python有一个漂亮的打印机(pprint(...)).我想让我的课程相当可打印.如果我提供某个界面,那么漂亮的打印会以更好的方式打印我的实例吗?

8.11节中的Python文档显示了不同的示例,但没有示例如何使用户定义的类具有可打印性.

那么我的课程需要提供哪种界面?
还有其他(可能更好)的格式化程序吗?


使用案例:

我想打印ConfigParser的内容,为此我创建了一个名为ExtendenConfigParser的扩展版本.所以我可以添加更多功能或添加匹配的漂亮打印界面.

python formatting pretty-print python-3.x

6
推荐指数
1
解决办法
763
查看次数

如何在自定义python 3类中支持漂亮打印?

为自定义python3类添加漂亮打印支持的最可靠方法是什么?

对于交互式数据评估,我发现漂亮的打印支持非常重要.但是,默认情况下,iPython的漂亮打印机IPython.lib.pretty.pprint和标准库pprint.pprint都只支持内置结构类型(列表,元组,字典),并将plain repr()用于其他所有内容.值得注意的是,这甚至包括其他非常有用的实用程序collections.namedtuple().

结果,漂亮的打印输出通常是奇怪的格式.

我当前的awkard解决方法是定义类

class MyPrettyClass(dict):
    def __init__(self, ...):
        self.__dict__ = self
        self._class = self.__class__ # In order to recognize the type.
        ... 
        <A LOT OF FIELDS>
        ...
Run Code Online (Sandbox Code Playgroud)

在一个真实世界的例子中,这导致了

{'__lp_mockup_xml': <lxml.etree._ElementTree object at 0x0000021C5EB53DC8>,
 '__lp_mockup_xml_file': 'E:\\DataDirectory\\mockup.xml',
 '__lp_realrun_xml_file': 'E:\\DataDirectory\\realrun.xml',
 '_class': <class '__main__.readall'>,
 '_docopy': False,
 'dirname': 'E:\\DataDirectory'}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来获得漂亮的打印支持?

弱相关:我的问题在python3中低级内省?最初旨在建立我自己的类不可知的漂亮打印机,但没有产生任何结果.

python pretty-print

5
推荐指数
1
解决办法
130
查看次数