2016-07-07 146 views
3

myDict = {NAME1:object1,NAME2:Object2的,等...}如何打印字典當值是一個對象(Python)的

*中的對象看起來像這樣:

Color: Blue, Flies: True, etc... 

編輯:包括上面的字典,所以你可以看到我正在與什麼工作。

雖然研究如何打印前字典在一個不錯的,可讀的方式,我想下面的代碼:

for key in myDict: 
     print (key) 
     for value in myDict[key]: 
      print (value, ":", myDict[key][value]) 

這將工作,但是,我的「價值」的都是對象,它說它不能迭代(這是有道理的)。我只是想知道如何使它的工作方式,如果價值是一個列表或可迭代的東西。

我所需的輸出格式是這樣的:

Item1:    --> Key (it's the name of the object) 
Color: Blue   --> Value (this is object[0]) 
Flies: True   --> Value (this is object[1]) 
etc.... 

謝謝!

+0

什麼「跟隨字典」? – TessellatingHeckler

+1

**大多數**對象都有'.__ dict__'字典。在你的情況:你只需用'myDict [key] .__ dict__'替換'myDict [key]'' – SuperSaiyan

+0

@TessellatingHeckler剛做了一個編輯 – AmericanMade

回答

2

您可以捕獲試圖迭代不可比較(儘管可能希望使字符串異常)時發生的TypeError

try: 
    for value in myDict[key]: 
     print (value, ":", myDict[key][value]) 
except TypeError: 
    print value