Я хочу создать массив множества в Python.Добавить словарь как значение словаря в Python
Это то, что я пытаюсь сделать с моим кодом ниже
for doc in collection.find():
pageType = doc.get('pageType')
title = doc.get('title')
_id = doc.get('_id')
value = {'pageType' : pageType, 'id': _id}
setValues = pageDict.get(title)
if not setValues :
setValues = set()
pageDict[title] = setValues
setValues.add(value)
Я получаю следующее сообщение об ошибке при запуске его
setValues.add (значение) TypeError: unhashable Тип: 'ДИКТ'
Я обнаружил, что я не могу установить изменяемое значение в качестве ключа словаря, но я добавляю его как значение словаря. По сути, мое значение словаря - это набор, содержащий другой словарь. Как я могу достичь этого в python? Какие другие структуры данных я мог бы использовать для достижения этого?
вы не можете добавить Dict к набору, который является то, что 'setValues.add (значение)' делает, вы можете добавить dicts к списку, также почему вы меняете setValues с 'pageDict.get (title)' на 'setValues = set()'? –
Есть ли причина, по которой вам нужен набор вместо другой структуры? Наборы обычно используются, когда присутствует элемент или нет, но не сам элемент. – user2085282
Я использую set, чтобы избежать дубликатов. – konquestor