в windows (python 3), если вы не используете open("D_FINAL.csv", "w",newline="")
, в результирующем csv-файле будут лишние пустые строки (из-за вставленного дополнительного символа возврата каретки, заканчивающегося такими строками, как \r\r\n
).
К сожалению, эти двойные символы возврата каретки читаются не одинаково: она генерирует пустую строку после каждой действительной строки данных. Таким образом, распаковка не удалась, потому что в строке нет элементов.
Подробнее об этом неприятном побочном эффекте: Файл CSV, написанный на Python, содержит пустые строки между каждой строкой
Таким образом, при чтении вы получаете пустую строку.
Просто сделайте (и улучшите свои навыки Python на ступеньку выше):
with open("D_FINAL.csv", "w", newline="") as f: # python 2: use: "wb"
writer = csv.writer(f)
writer.writerows(D_FINAL.items())
(написать за один раз с writerows
, использовать блок with
, чтобы вы не пропустили вызов close
и файл больше не блокировался)
Обратите внимание, что модуль json
лучше всего подходит для чтения и записи словарей (если вам нужна сериализация)
В сторону: лучше читать обратно, используя лучшую технику (кажется, что newline
вещь действительно не нужна при чтении):
with open("D_FINAL.csv", "r", newline="") as f: # python 2: use: "rb"
writer = csv.reader(f)
output = {k:v for k,v in writer} # unpack+dictionary comprehension