如何打印嵌套词典?如何在Python中打印深度为~4的字典呢?我尝试使用漂亮的打印pprint(),但它不起作用:import pprint
pp = pprint.PrettyPrinter(indent=4)pp.pprint(mydict)我只是希望"\t"每个嵌套都有一个缩进(),这样我得到这样的东西:key1
value1
value2
key2
value1
value2等等我怎样才能做到这一点?
3 回答

喵喵时光机
TA贡献1846条经验 获得超7个赞
我不确定你想要格式化的样子,但你可以从这样的函数开始:
def pretty(d, indent=0): for key, value in d.items(): print('\t' * indent + str(key)) if isinstance(value, dict): pretty(value, indent+1) else: print('\t' * (indent+1) + str(value))

心有法竹
TA贡献1866条经验 获得超5个赞
通过这种方式,你可以用漂亮的方式打印它,例如你的字典名称是yasin
import json print (json.dumps(yasin, indent=2))

慕斯709654
TA贡献1840条经验 获得超5个赞
噘嘴可以打印任何你扔的东西,例如(借用data
另一个答案):
data = {'a':2, 'b':{'x':3, 'y':{'t1': 4, 't2':5}}}pout.vs(data)
会导致输出打印到屏幕上,如:
{ 'a': 2, 'b': { 'y': { 't2': 5, 't1': 4 }, 'x': 3 }}
或者您可以返回对象的格式化字符串输出:
v = pout.s(data)
它的主要用例是用于调试,因此它不会阻塞对象实例或任何东西,它会像你期望的那样处理unicode输出,在python 2.7和3中工作。
披露:我是pout的作者和维护者。
添加回答
举报
0/150
提交
取消