首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pprint强制垂直显示

使用pprint强制垂直显示
EN

Stack Overflow用户
提问于 2016-09-18 15:57:10
回答 1查看 104关注 0票数 2

我使用pprint来显示两个字典之间的diff。有时,字典中的值是长字符串,我希望将其显示为单行,因此我将width设置为某个较大的值。不幸的是,有时这些字典很浅(例如,在一般情况下,它们可以嵌入列表和字典,有些只是带有短字符串值的字典),在这种情况下,pprint在一行上“漂亮地打印”它们:

代码语言:javascript
复制
>>> pprint.pprint({'a': 'a', 'b': 'b'})
{'a': 'a', 'b': 'b'}

有没有办法强制pprint总是垂直显示列表和字典?同样,width不是一种选择,因为它将字符串拆分在行内(即,在\n上中断是好的,但在其他地方就不行了)。

代码语言:javascript
复制
>>> pprint.pprint({'a': 'a ' * 50}, width=20)
{'a': 'a a a a a a '
      'a a a a a a '
      'a a a a a a '
      'a a a a a a '
      'a a a a a a '
      'a a a a a a '
      'a a a a a a '
      'a a a a a a '
      'a a '}

如果pprint不合适,有没有什么标准库可以帮我省去编写专用例程的麻烦?

EN

回答 1

Stack Overflow用户

发布于 2016-09-18 17:56:06

选项:使用json

我发现将字典转换为JSON比pprint更可预测。此外,您还可以选择对键进行排序,这将有助于您进行比较

代码语言:javascript
复制
    >>> import json

    >>> d1 = {'a': 'a', 'b': 'b', 'c':'c'}
    >>> print(json.dumps(d1, sort_keys=True, indent=''))
    {
    "a": "a",
    "b": "b",
    "c": "c"
    }
    >>> d2 = {'a': 'a ' * 50, 'b':'b', 'c': 'c ' * 50}
    >>> print(json.dumps(d2, sort_keys=True, indent=''))
    {
    "a": "a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a ",
    "b": "b",
    "c": "c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c "
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39555387

复制
相关文章

相似问题

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