Я пытаюсь читать CSV-файл, отформатированный как таковойВложенные словарь по умолчанию в словарь по умолчанию
Number,Letter,Color,
1,a,blue,
1,b,green,
1,c,yellow,
и выйти вложенную словарь как этот
{
"1":[
"Letter":["a","b","c"],
"Color":["blue","green","yellow"]
]
}
я могу получить номер и его ассоциированные строки из csv, но как только я попробую и вложен, я получаю AttributeError: объект «collections.defaultdict» не имеет атрибута «append», я думаю, что в большинстве случаев он выключен в нужное начало
result = co.defaultdict(lambda: co.defaultdict(list))
subresult = co.defaultdict(list)
with open(os.path.join(inputdir,tablelist[i])) as f:
csv_reader = csv.reader(f)
csv_headings = next(csv_reader)
read = csv.DictReader(f, fieldnames=csv_headings)
for line in read:
subresult = {}
for j in range(1,len(csv_headings)):
#result[line[csv_headings[0]]].append(line[csv_headings[j]])
result[line[csv_headings[0]]].append(subresult[csv_headings[j]].append(line[csv_headings[j]]))
объекты Dict не 'append' метод вместо этого использовать' update' метод – efirvida
Ну, что тип ** subresult [csv_headings [J]] **? Вы не дали нам воспроизводимого примера. Когда я пытаюсь выполнить это с моими CSV-файлами, я получаю ключевую ошибку при j = 1, а это значит, что результирующий объект ** None ** должен будет использовать ** append **. Если это должен быть словарь, то вы все еще сосать, так как ** append ** не является методом словаря. – Prune
subresult должен быть словарь со списками, соответствующими ключам –