2017-07-25 34 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作品!非常感謝 !! :) –