簡體   English   中英

是否有一個漂亮的python數據打印機?

[英]Is there a pretty printer for python data?

以交互方式使用python,有時需要顯示一些結果,這是一些任意復雜的數據結構(如帶有嵌入列表的列表等)。顯示它們的默認方式只是一個大規模的線性轉儲,它只是一遍又一遍地包裝你有仔細解析閱讀它。

有什么東西可以采取任何python對象並以更合理的方式顯示它。 例如

[0, 1,
    [a, b, c],
    2, 3, 4]

代替:

[0, 1, [a, b, c], 2, 3, 4]

我知道這不是一個很好的例子,但我認為你明白了。

from pprint import pprint
a = [0, 1, ['a', 'b', 'c'], 2, 3, 4]
pprint(a)

請注意,對於像我的例子這樣的簡短列表,pprint實際上會在一行上打印出來。 但是,對於更復雜的結構,它可以很好地打印數據。

SOMtimes YAML可能對此有好處。

import yaml
a = [0, 1, ['a', 'b', 'c'], 2, 3, 4]
print yaml.dump(a)

生產:

- 0
- 1
- [a, b, c]
- 2
- 3
- 4

除了pprint.pprintpprint.pformat對於生成可讀的__repr__非常有用。 我的復雜__repr__通常如下所示:

def __repr__(self):
    from pprint import pformat

    return "<ClassName %s>" % pformat({"attrs":self.attrs,
                                       "that_i":self.that_i,
                                       "care_about":self.care_about})

另一個不錯的選擇是使用IPython ,這是一個具有許多額外功能的交互式環境,包括自動漂亮打印,方法的選項卡完成,簡單的shell訪問等等。 它也很容易安裝。

IPython教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM