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

1 投票
4 回答
5082 浏览
提问于 2025-04-16 10:12

我创建了一个字典列表,像这样:

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

但是出现了一个错误信息,内容是“类名”对象不可迭代。

4 个回答

0

试着使用

for dic in lst:
    for key in dic.keys():
     /* process dic[key] */
1

你需要使用 dic.iteritems()

5

遍历字典的时候,其实只是遍历字典的键,而不是键值对。所以在这一行

for k,v in dic:

Python 只拿到了一个键,比如 Classobj1,然后试图把它拆分成两个部分,去匹配元组 k,v。因为 Classobj1 不能被遍历,所以它无法拆分成两个项目,这就是你会看到这个错误的原因。

如果想要遍历键值对,可以使用 items() 或 iteritems():

for k,v in dic.items():

撰写回答