2016-07-07 150 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