2024-04-26 19:24:50 发布
网友
我怎样才能用Python打印出深度为~4的字典呢?我试着用pprint()进行漂亮的打印,但没有成功:
pprint()
import pprint pp = pprint.PrettyPrinter(indent=4) pp.pprint(mydict)
我只希望每个嵌套都有一个缩进("\t"),以便得到如下结果:
"\t"
key1 value1 value2 key2 value1 value2
等等
我该怎么做?
我不确定您到底希望格式如何,但可以从这样的函数开始:
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))
您可以通过PyYAML尝试YAML。它的输出可以微调。我建议从以下几点开始:
print yaml.dump(data, allow_unicode=True, default_flow_style=False)
结果是非常可读;如果需要,还可以将其解析回Python。
编辑:
示例:
>>> import yaml >>> data = {'a':2, 'b':{'x':3, 'y':{'t1': 4, 't2':5}}} >>> print yaml.dump(data, default_flow_style=False) a: 2 b: x: 3 y: t1: 4 t2: 5
我的第一个想法是JSON序列化程序可能非常擅长嵌套字典,所以我会作弊并使用它:
>>> import json >>> print json.dumps({'a':2, 'b':{'x':3, 'y':{'t1': 4, 't2':5}}}, ... sort_keys=True, indent=4) { "a": 2, "b": { "x": 3, "y": { "t1": 4, "t2": 5 } } }
我不确定您到底希望格式如何,但可以从这样的函数开始:
您可以通过PyYAML尝试YAML。它的输出可以微调。我建议从以下几点开始:
print yaml.dump(data, allow_unicode=True, default_flow_style=False)
结果是非常可读;如果需要,还可以将其解析回Python。
编辑:
示例:
我的第一个想法是JSON序列化程序可能非常擅长嵌套字典,所以我会作弊并使用它:
相关问题 更多 >
编程相关推荐