2011-12-05 32 views
1
Traceback (most recent call last): 
    File "filter_import.py", line 77, in <module> 
     get(sys.argv[1]) 
    File "filter_import.py", line 35, in get 
     timestamp, ip, hash_value = lines.split() 
ValueError: need more than 2 values to unpack 

我得到这个错误信息,当我运行我的代码filter_import时,任何人都可以解释一下这个问题是什么?我的代码Python中的ValueError

部分:

if __name__ == '__main__': 
import sys 
if len(sys.argv) == 1: 
    print 'Usage: filter_import.py <filename>' 
    sys.exit(1) 
get(sys.argv[1]) 

回答

6

问题不提供两个值线,因此,“拆包” split()的返回值到两个变量timestampiphash_value失败。

下面是错误的一个独立的再现:

>>> a,b,c = "foo".split() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: need more than 1 value to unpack 
+0

感谢,但对于这部分? 'File“filter_import.py”,第77行,在 get(sys.argv [1])',有什么不对吗? @unwind – manxing

+2

不是。这是堆栈跟踪的一部分。堆栈跟踪显示了解释器通过代码行来引发异常的代码行。在你的例子中,它只是表明你的模块的第77行调用了get方法。 – gecco