我从这段代码中得到该异常:
class Transaction:
def __init__ (self):
self.materials = {}
def add_material (self, m):
self.materials[m.type + m.purity] = m
def serialize (self):
ser_str = 'transaction_start\n'
for k, m in self.materials:
ser_str += m.serialize ()
sert += 'transaction_end\n'
return ser_str
这for
行是引发异常的行。该m
s为Material
对象。有人有什么想法吗?
self.materials
是一个dict
,默认情况下,您仅迭代键(字符串)。
由于self.materials
具有两个以上的键*,因此无法将它们解压到tuple
“
k, m
”中,因此引发了异常。ValueError
在Python 2. x中
,要遍历键和值(tuple
“
k, m
”),我们使用self.materials.iteritems()
。
但是,由于无论如何都将键扔掉了,因此还可以简单地遍历字典的值:
for m in self.materials.itervalues():
在Python 3. x中 ,preferred
dict.values()
(返回字典视图对象):
for m in self.materials.values():
我试图运行我在网上找到的刮板,但收到一个ValueError:太多的值在这行代码上解包 这条线是这个函数的一部分 如果您有任何意见,我们将不胜感激,谢谢。
问题内容: 运行脚本答案时,出现以下错误: 编码: 任何帮助表示赞赏! 问题答案: 我从OpenCV StackExchange网站获得了答案。回答 答案: 我敢打赌,您正在使用当前的OpenCV的master分支:此处的return语句已更改,请参阅http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_d
问题内容: 我正在编写一个opencv程序,但在另一个stackoverflow问题上找到了一个脚本: 计算机视觉掩盖人的手 运行脚本化答案时,出现以下错误: 编码: 任何帮助表示赞赏! 问题答案: 您正在使用当前的OpenCV的master分支:return语句已更改,请参见 http://docs.opencv.org/trunk/modules/imgproc/doc/structural_
代码: 错误: 准备好了,我得到了一个自动驾驶代码,当我使用代码提取数据时,我得到了一个像这样的错误,我不知道该做什么,确切地说,我的Python版本最新版本,谢谢提前
问题内容: 我得到了错误。知道我该如何解决吗? 问题答案: Python 2 您需要使用。 请参阅此答案,以获取有关遍历字典的更多信息,例如跨python版本使用using 。 Python 3 由于 Python 3的 是不再支持。使用代替。
问题内容: 在for循环中使用split会导致上述异常。但是,当从for循环中获取独立元素时,它可以工作: 一个解释将不胜感激-并且自然也为for循环版本的正确语法。 问题答案: 该环路期望的是,在迭代每个项目可以解压到两个变量。因此,在您的情况下,看起来像其中之一: 这些可迭代项中的每个项都可以分为和组件。在您的情况下,它们不能,因为的输出是具有两个以上字符的字符串列表: