通常,mydict['fruits']
是一本字典,您的fruit
將是關鍵。索引mydict['fruits']
與fruit
像mydict['fruits'][fruit]
將導致獲得單個項目,顯然,這是一個整數,而不是營養列表。爲什麼它是一個整數,是在你的代碼中的其他地方引起的。
>>> for fruit in mydict['fruits']:
... print fruit, mydict['fruits'][fruit]
... for nutrition in mydict['fruits'][fruit]:
... print nutrition
...
kiwi 2
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
TypeError: 'int' object is not iterable
更新
(令人困惑的是,這個問題改變,因此我的回答需要更新。)
你可以使用isinstance(mydict['fruits'][fruit], list)
和變型。
或許更好,確保事情總是一個清單;即將類型檢查邏輯放在Python代碼中,而不是放在模板代碼中。因爲實際上,爲什麼一個整數由營養物質?
此外,也可以考慮通過迭代字典的簡單的方法(假設這部作品在鯖):
>>> for fruit, nutritions in mydict['fruits'].items():
... if isinstance(nutritions, list):
... for nutrition in nutritions:
... print nutrition
是否有真子的方式來檢查,如果對象是一個字典或對象? – Rolando
你可以發佈你的'mydict'數據結構嗎? – dm03514