首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python和默认dict,如何pprint

Python和默认dict,如何pprint
EN

Stack Overflow用户
提问于 2012-10-17 07:36:47
回答 5查看 13.8K关注 0票数 40

我使用的是默认字典。我需要pprint

然而,when I pprint ...this就是它看起来的样子。

代码语言:javascript
复制
defaultdict(<functools.partial object at 0x1f68418>, {u'300:250': defaultdict(<functools.partial object at 0x1f683c0>, {0: defaultdict(<type 'list'>, {u'agid1430864021': {u'status': u'0', u'exclude_regi..........

如何让pprint与默认字典一起工作?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-17 07:38:38

我以前使用过pprint(dict(defaultdict))作为变通方法。

票数 44
EN

Stack Overflow用户

发布于 2013-08-22 17:29:59

我找到的最好的解决方案是一个黑客,但一个优雅的(如果黑客可以做到的话):

代码语言:javascript
复制
class PrettyDefaultDict(collections.defaultdict):
    __repr__ = dict.__repr__

然后使用PrettyDefaultDict类而不是collections.defaultdict。它的工作方式取决于pprint模块的工作方式(至少在2.7上):

代码语言:javascript
复制
r = getattr(typ, "__repr__", None)
if issubclass(typ, dict) and r is dict.__repr__:
    # follows pprint dict formatting

这样,我们就会“欺骗”pprint,使其认为我们的字典类就像一个普通的dict

票数 24
EN

Stack Overflow用户

发布于 2016-01-20 02:06:34

如果您不必使用pprint,则可以使用json美化打印defaultdict

代码语言:javascript
复制
print(json.dumps(my_default_dict, indent=4))

这也适用于嵌套的默认条件。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12925052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档