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



этот вопрос уже есть ответ здесь:




  • TypeError: unhashable тип: 'dict'

    1 ответ



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



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


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




TypeError: unhashable тип: 'dict'




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

568   2  

2 ответов:

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

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

Comments

    Ничего не найдено.