try:
return [ True, errors[error], error ] # Error found
except SoapFault as e: #or this could be Exception as e doesn't matter
print str(e)
我正在
['soapenv', 'Sender', 'invalid request']
unhashable type: 'list'
这个不可用的列表有什么问题,当我尝试print e[2]
时,我得到IndexError: tuple index out of range
答案 0 :(得分:3)
您正在将列表返回到需要可散列类型的内容,例如int,字符串或hashable类型的元组。这会导致有关unhashable type: list
的消息。列表是不可取的,因为它们是可变的;更改其内容将更改其哈希值,这是不允许的。获得此错误的常见方法是尝试将列表用作dict中的键,或者作为集合中的项目使用。
关于tuple index out of range
的第二个错误意味着您尝试将元组索引到其结尾之外。这意味着您要索引的内容不是此['soapenv', 'Sender', 'invalid request']
列表,而是其他一些项目。它可能是包含列表的元组,但是没有看到那个元组,就不可能这么说了。尝试打印repr()
。
答案 1 :(得分:1)
首先,你确定错误是一个数字,而不是像'1'这样的字符串吗?也许这是一个问题。 对于第二个答案,e可能不是数组。就在它转换为String时,它可以打印包装数组的内容。
无论如何,请尝试为您的问题提供更多背景信息。对其进行编辑以包含一个测试,该测试以人们可以重现的方式提供错误。