Django:为什么'Class'对象不可迭代

use*_*652 1 python django dictionary list

我建了这样的字典列表

lst = [{'name': nameobj, Classobj1: "string", Classobj2: "string"}, \
{'name': nameobj, Classobj1: "string", Classobj2: "string"}]
Run Code Online (Sandbox Code Playgroud)

我正在使用

for dic in lst:
   for k,v in dic:   # here is the line has probloem! What it happens?
       #process
Run Code Online (Sandbox Code Playgroud)

错误消息类似于"Classname"对象不可迭代.

lac*_*ker 5

迭代字典只是迭代键,而不是键值对.所以就行了

for k,v in dic:
Run Code Online (Sandbox Code Playgroud)

Python只取一个键,比如Classobj1,并尝试解压缩它以匹配元组k,v.由于Classobj1无法迭代,因此无法解压缩以匹配两个项目,这就是您收到此错误的原因.

要迭代键值对,请使用items()或iteritems():

for k,v in dic.items():
Run Code Online (Sandbox Code Playgroud)