如何很好地格式化字典字符串输出

发布于 2021-01-29 15:10:01

我想知道是否有一种简单的方法来格式化dict-outputs的字符串,例如:

{
  'planet' : {
    'name' : 'Earth',
    'has' : {
      'plants' : 'yes',
      'animals' : 'yes',
      'cryptonite' : 'no'
    }
  }
}

…,简单的str(dict)只会让您难以理解…

{'planet' : {'has': {'plants': 'yes', 'animals': 'yes', 'cryptonite': 'no'}, 'name': 'Earth'}}

就我对Python的了解而言,我将不得不编写许多带有许多特殊情况和string.replace()调用的代码,而这个问题本身看起来并不太像一个1000行的问题。

请建议根据此形状格式化所有字典的最简单方法。

关注者
0
被浏览
114
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    根据您对输出所做的操作,一种选择是将JSON用于显示。

    import json
    x = {'planet' : {'has': {'plants': 'yes', 'animals': 'yes', 'cryptonite': 'no'}, 'name': 'Earth'}}
    
    print json.dumps(x, indent=2)
    

    输出:

    {
      "planet": {
        "has": {
          "plants": "yes", 
          "animals": "yes", 
          "cryptonite": "no"
        }, 
        "name": "Earth"
      }
    }
    

    需要注意的是,这种方法无法通过JSON序列化。如果字典包含不可序列化的项(例如类或函数),则需要一些额外的代码。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看