ValueError:太多的值无法解压缩(Python 2.7)

ValueError:太多的值无法解压缩(Python 2.7),python,unpack,Python,Unpack,检查输出 values = data.split("\x00") username, passwordHash, startRoom, originUrl, bs64encode = values if len(passwordHash)!= 0 and len(passwordHash)!= 64: passwordHash = "" if passwordHash != "": passwordHash = hashlib.sha512(passwordHa

检查输出

values = data.split("\x00")

username, passwordHash, startRoom, originUrl, bs64encode = values
if len(passwordHash)!= 0 and len(passwordHash)!= 64:
        passwordHash = ""
if passwordHash != "":
        passwordHash = hashlib.sha512(passwordHash).hexdigest()
username = username.replace("<", "")
if len(startRoom) > 200:
        startRoom = ""
startRoom = self.roomNameStrip(startRoom, "2").replace("<","").replace("&amp;#", "&amp;amp;#")
self.login(username, passwordHash, startRoom, originUrl)  


Error:
username, passwordHash, startRoom, originUrl, bs64encode = values
ValueError: too many values to unpack
它有5个以上的值,这是您试图将其解包到的变量数,导致您的值太多而无法解包错误:

print len(values)
如果要忽略列表的尾部元素,可以执行以下操作:

username, passwordHash, startRoom, originUrl, bs64encode = values
或者借助@JoelCornett只打开前5个元素

#assuming values has a length of 6
username, passwordHash, startRoom, originUrl, bs64encode, _ = values
当您执行values=data.split\x00时,它将生成5个以上的元素,可能不是所有的值都用\x00分隔


使用打印值检查值的值,并使用lenvalues检查值的大小

最好使用arg1、arg2、arg3=values[:3]来忽略额外的元素。这也是另一个选项-添加到答案中-谢谢。我建议添加一些文本来说明问题,而不仅仅是发布代码。你的问题很可能会被更多的人投票,因此会有更多的人看到它,你也会更有可能得到答案。
#get the first 5 elements from the list
username, passwordHash, startRoom, originUrl, bs64encode = values[:5]