Skip to main content
 首页 » 编程设计

python之"Too many fields to unpack"错误,即使我在左侧和右侧获得了相同数量的字段

2025年05月04日16powertoolsteam

非常简单的代码,我有一个包含两个值的元组 extraAccessions,一个字符串和一个列表。我想遍历 extraAccessions(在此示例中只有一个)并使用元组中的第一个和第二个值。

extraAccessions=('MS:1000505',['value','unitName']) 
for accession, fieldIdentifiers in extraAccessions: 
    [do something] 

然而,这给出了

ValueError: too many values to unpack 

当我做的时候

print (extraAccessions) 

我明白了

('MS:1000505', ['value', 'unitName']) 

这对我来说似乎是两个值,正是在

for accession, fieldIdentifiers in extraAccessions: 

所以我不明白为什么会出现此错误。


编辑:

当我这样做的时候

for accession in extraAccessions: 
     print accession 

我得到第一个元素MS:1000505

请您参考如下方法:

让我们检查一下您的代码:

extraAccessions=('MS:1000505',['value','unitName']) 
for accession, fieldIdentifiers in extraAccessions: 
    ... 

在这里,您正在迭代具有两个条目的元组 (extraAccessions):

  1. 'MS:1000505'
  2. ['value','unitName']

然后您将尝试依次将每个条目 解包到两个变量中。这不适用于第一个条目,因为它的长度不是二。

如果您希望将两个条目解压到两个变量中,只需使用:

accession, fieldIdentifiers = extraAccessions 

那会设置

  1. 加入到'MS:1000505'
  2. fieldIdentifiers 到 ['value','unitName']