【发布时间】:2011-05-30 17:41:47
【问题描述】:
我有这段代码:
for element in json[referenceElement].keys():
当我运行该代码时,我收到此错误:
TypeError: unhashable type: 'dict'
该错误的原因是什么,我可以做些什么来解决它?
【问题讨论】:
我有这段代码:
for element in json[referenceElement].keys():
当我运行该代码时,我收到此错误:
TypeError: unhashable type: 'dict'
该错误的原因是什么,我可以做些什么来解决它?
【问题讨论】:
从错误中,我推断referenceElement 是一个字典(参见下面的repro)。字典不能被散列,因此不能用作另一个字典的键(或者它本身!)。
>>> d1, d2 = {}, {}
>>> d1[d2] = 1
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: unhashable type: 'dict'
您的意思可能是for element in referenceElement.keys() 或for element in json['referenceElement'].keys()。有了更多关于 json 和 referenceElement 是什么类型以及它们包含什么的上下文,如果这两种解决方案都不起作用,我们将能够为您提供更好的帮助。
【讨论】:
在我看来,当 Python 查找列表或元组时,调用 keys 方法会返回一个字典对象。所以尝试获取字典中的所有键,将它们放入一个列表中,然后使用 for 循环。
【讨论】: