2017-07-25 33 views
-1

一个表,我想输出在控制台表的形式字典数据:输出字典数据作为控制台

dtc={ "test_case1_short":{"test_step11":"pass","test_step12":"pass","test_step_13":{"status":"failed","details":"ca marche po"}, "test_case2_longest_name":{"test_step21":"ne","test_step22":"ne"}, "test_case3_medium_name":{"test_step31":"ne","test_step32":"ne"} }

注:法语的人“DTC”是dict_test_collection快捷方式(!)

要建立这个表格,我想确定以标注我的列标题的键名的规模。 我可以得到我的钥匙名最大长度这样做:

max = 0 
for i in list(dtc.keys()): 
if max < len(i): 
    max = len(i) 
print(max) 

,但我觉得这不是很简单明了......有没有办法摆脱dict.keys()此信息或其他字典功能?

此外,我想设置分隔符,如“+ ----------------------------- +”的栏目标题和“| |”对于部分机构,有一个好看的表。 在部分机构,有一条直线和简单的方式来设置表和列宽度(即“|”卡拉科特在列50,结束了一切就行文字,像填充用空格线,直到某列)

谢谢

亚历山大

+0

关系到你的第二个问题,关于餐桌装饰,见我需要https://stackoverflow.com/questions/9535954/printing-lists-as-tabular-data –

+0

究竟是什么, 谢谢 ! –

回答

0

is there a way to get this information from dict.keys() or another dict feature ?

这看起来非常简单对我说:

max_key_len = max(len(key) for key in dtc) 
print(max_key_len) 

这其中似乎少了简单,但它是更短:

max_key_len = max(map(len, dtc)) 
print(max_key_len) 
+0

感谢您的回复,但我有一个类型错误:“廉政”对象不是可调用的。如果我[在DTC关键LEN(钥匙)做我能得到长度值,但我不能把它应用MAX()... –

+1

你已经在你的代码重新定义了'max'功能以前的某个地方。尽量不要在内置函数后命名变量。或者,'进口builtins'然后用'builtins.max(LEN(键)键DTC)'。 –

+0

进口builtins作品!非常感谢 !! :) –