我使用的是默认字典。我需要pprint。
然而,when I pprint ...this就是它看起来的样子。
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与默认字典一起工作?
发布于 2012-10-17 07:38:38
我以前使用过pprint(dict(defaultdict))作为变通方法。
发布于 2013-08-22 17:29:59
我找到的最好的解决方案是一个黑客,但一个优雅的(如果黑客可以做到的话):
class PrettyDefaultDict(collections.defaultdict):
__repr__ = dict.__repr__然后使用PrettyDefaultDict类而不是collections.defaultdict。它的工作方式取决于pprint模块的工作方式(至少在2.7上):
r = getattr(typ, "__repr__", None)
if issubclass(typ, dict) and r is dict.__repr__:
# follows pprint dict formatting这样,我们就会“欺骗”pprint,使其认为我们的字典类就像一个普通的dict。
发布于 2016-01-20 02:06:34
如果您不必使用pprint,则可以使用json美化打印defaultdict
print(json.dumps(my_default_dict, indent=4))这也适用于嵌套的默认条件。
https://stackoverflow.com/questions/12925052
复制相似问题