簡體   English   中英

Django:為什么“ Class”對象不可迭代

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM