小编典典

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

python

我想知道是否有一种简单的方法来格式化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行的问题。

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


阅读 186

收藏
2021-01-20

共1个答案

小编典典

根据您对输出所做的操作,一种选择是将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序列化。如果字典包含不可序列化的项(例如类或函数),则需要一些额外的代码。

2021-01-20