我想知道是否有一种简单的方法来格式化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行的问题。
请建议根据此形状格式化所有字典的最简单方法。
根据您对输出所做的操作,一种选择是将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序列化。如果字典包含不可序列化的项(例如类或函数),则需要一些额外的代码。