TypeError: unhashable тип: 'dict', когда dict используется в качестве ключа для другого dict [дубликат]
этот вопрос уже есть ответ здесь:
TypeError: unhashable тип: 'dict'
1 ответ
У меня есть этот кусок кода:
for element in json[referenceElement].keys():
когда я запускаю этот код, я получаю эту ошибку:
TypeError: unhashable тип: 'dict'
в чем причина этой ошибки и что я могу сделать чтобы исправить это?
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