TypeError:unhashable type:'dict',当dict用作另一个dict的键时

时间:2010-12-25 22:33:42

标签: python json hash

我有这段代码:

for element in json[referenceElement].keys():

当我运行该代码时,我收到此错误:

  

TypeError:不可用类型:'dict'

该错误的原因是什么,我该怎么做才能解决?

2 个答案:

答案 0 :(得分:75)

从错误中,我推断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()。有关jsonreferenceElement类型及其包含内容的更多背景信息,如果两种解决方案均无效,我们将能够更好地为您提供帮助。

答案 1 :(得分:1)

对我来说似乎是通过调用keys方法,当你正在查找列表或元组时,你将返回python一个字典对象。因此,尝试获取字典中的所有键,将它们放入列表中,然后使用for循环。