当前位置:  开发笔记 > 编程语言 > 正文

ValueError:没有足够的值可解包(预期11,得到1)

如何解决《ValueError:没有足够的值可解包(预期11,得到1)》经验,为你挑选了2个好方法。

我编写了用于系统自动化的脚本,但出现标题中描述的错误。我下面的代码是脚本的相关部分。问题是什么?

import csv
import os

DIR = "C:/Users/Administrator/Desktop/key_list.csv"

def Customer_List(csv):
    customer = open(DIR)
        for line in customer:
            row = []
            (row['MEM_ID'],
             row['MEM_SQ'],
             row['X_AUTH_USER'],
             row['X_AUTH_KEY'],
             row['X_STORAGE_URL'],
             row['ACCESSKEY'],
             row['ACCESSKEYID'],
             row['ACCESSKEY1'],
             row['ACCESSKEYID1'],
             row['ACCESSKEY2'],
             row['ACCESSKEYID2'])=line.split()
            if csv == row['MEM_ID']:
                customer.close()
                return(row)
            else:
                print ("Not search for ID")
                return([])

id_input = input("Please input the Customer ID(Email): ")
result = Customer_List(id_input)

if result:
    print ("iD:    " + id['MEM_ID']

Martin Konec.. 6

对于行

line.split()

你在做什么?看起来像CSV,所以请尝试

line.split(',')

例:

"one,two,three".split()  # returns one element ["one,two,three"]
"one,two,three".split(',')  # returns three elements ["one", "two", "three"]

正如@ TigerhawkT3所提到的,最好使用CSV模块。这里提供了极为简便的方法。



1> Martin Konec..:

对于行

line.split()

你在做什么?看起来像CSV,所以请尝试

line.split(',')

例:

"one,two,three".split()  # returns one element ["one,two,three"]
"one,two,three".split(',')  # returns three elements ["one", "two", "three"]

正如@ TigerhawkT3所提到的,最好使用CSV模块。这里提供了极为简便的方法。


奇怪的是,OP导入了`csv`模块,但从未使用过它(甚至掩盖了函数中的导入)。我更倾向于使用适当的`csv.reader`而不是使用不同的`str.split()`。

2> xbonez..:

错误消息是很不言自明的

(a,b,c,d,e) = line.split()

期望line.split()产生5个元素,但在您的情况下,它仅产生1个元素。这可能是因为数据的格式不符合您的预期,流氓格式错误的行,或者可能是空行-无法知道。

要查看导致问题的行,您可以添加一些调试语句,如下所示:

if len(line.split()) != 11:
    print line

正如Martin所建议的,您可能还会在错误的定界符上产生分歧。

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有