[英]Django: Why 'Class' object is not iterable
我建立了這樣的字典清單
lst = [{'name': nameobj, Classobj1: "string", Classobj2: "string"}, \
{'name': nameobj, Classobj1: "string", Classobj2: "string"}]
我正在使用
for dic in lst:
for k,v in dic: # here is the line has probloem! What it happens?
#process
錯誤消息就像“ Classname”對象不可迭代。
遍歷字典只是遍歷鍵,而不是鍵值對。 所以就行
for k,v in dic:
Python僅使用諸如Classobj1之類的鍵,並嘗試將其解包以使其與元組k,v匹配。 由於無法迭代Classobj1,因此無法解壓縮它以匹配兩個項目,這就是為什么會出現此錯誤的原因。
要遍歷鍵值對,請使用items()或iteritems():
for k,v in dic.items():
您需要使用dic.iteritems()
。
嘗試使用
for dic in lst:
for key in dic.keys():
/* process dic[key] */
for dic in lst:
for k,v in dic.iteritems(): # just added a call to iteritems
#process
您會收到“ <class obj>不可迭代”錯誤,因為dict
對其進行迭代時會產生其鍵,因此當您說Classobj1
,程序會期望Classobj1
是可迭代的對象,並會產生k,v
值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.