Подтвердить что ты не робот

TypeError: unhashable type: 'dict', когда dict используется как ключ для другого dict

У меня есть эта часть кода:

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

Когда я запускаю этот код, я получаю эту ошибку:

TypeError: unhashable type: 'dict'

В чем причина этой ошибки и что я могу сделать, чтобы исправить ее?

4b9b3361

Ответ 1

Из этой ошибки я заключу, что referenceElement - словарь (см. ниже). Словарь не может быть хэширован и поэтому не может использоваться как ключ к другому словарю (или самому себе!).

>>> 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 и что они содержат, мы сможем лучше помочь вам, если ни одно из решений не будет работать.

Ответ 2

Мне кажется, что, вызывая метод ключей, вы возвращаете на python объект словаря при поиске списка или кортежа. Поэтому попробуйте взять все ключи в словаре, помещая их в список, а затем используя цикл for.