не добавляются значения в справочник csv на python
имеется файл csv следующего формата:
наименование отдела, список файлов
Финансово-экономический отдел, файл 1.xlsx, файл1.docx, file1.txt и т.д.
отдел кадров, файл 2.xlsx, файл2.docx, file2.txt и т.д.
отдел маркетинга и планирования, файл 3.xlsx, , file3.txt и т.д.
таких строк множество. необходимо сделать словарь, где первое значение должно быть ключом, остальные - значения. делаю следующим образом:
departments = {}
with open(dict_path, mode='r', newline='', encoding='utf-8') as file:
reader = csv.reader(file)
# Пропускаем первую строку с заголовками
next(reader)
for row in reader:
department = row[0].strip()
files = [f.strip() for f in row[1].split(', ')]
print(f"Department: {department}, Files: {files}")
if department not in departments:
departments[department] = []
departments[department].extend(files)
print(departments)
и вот тут то у меня возникает проблема. вроде бы должны значения разделяться запятой и записываться в словарь, но вместо этого записывается только первое значение.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
files = [f.strip() for f in row[1].split(', ')]
Вы сами берёте только одно поле row[1]
. Файлы уже поделены запятыми на элементы и лежат в остальных частях списка row
. Их не нужно делить запятыми, они уже поделены. Замените эту строчку на:
files = list(map(str.strip, row[1:]))