Я уже рассмотрел их, но пока не повезло stackquestion1 stackquestion2 stackquestion3 и многие другие.Кажется, что все по-другому?
Я действительно думаю, что это простое решение, но я пытаюсь часами.Я хочу получить значения вложенного словаря внутри цикла for.У меня есть упрощенный пример:
def write_to_file(class_set, clusterdict, outfile):
with open(outfile, "w") as outputfile:
writer = csv.writer(outputfile, delimiter='\t')
class_list = list(class_set)
header = ["\t"] + class_list
writer.writerow(header) # write header
for organism, cluster in clusterdict.items():
#print clusterdict.get(organism) # works, just to see if it does anything
line = []
#some stuff here that works, writing specific lines
#part that doesnt work
line.append(clusterdict.get(organism).get(cluster)) # gives TypeError: unhashable type: 'dict'
line.append(clusterdict.get(organism) # does work, but of course gives me the wrong dict values
writer.writerow(line)
Диктовка выглядит следующим образом.Это словарь с несколькими организмами и в том числе словарь с несколькими кластерами.Таким образом, у каждого организма есть несколько кластеров, с (иногда несколькими) наборами в качестве значений (я думаю, что проблема может быть в наборах?)
clusterdict =
'organism1':{'cluster1': [set(['value1', 'value2']) , [set(['value3', 'value4'])], 'cluster2: [set(['value5', 'value6']) , [set(['value7', 'value8'])]} ,
'organism2':{.......} ,
'organism3':{.......} , etc
Я пробовал много способов получить значения.Например, как dict [key1] [key2], но это также дает мне «неразрешимую» ошибку.Может кто-нибудь дать мне несколько указаний?