@GlebD100

Как записать Словарь в CSV по СТОЛБЦАМ в Python?

Привет,
Имею данные в виде такого словаря:
data{"Заголовок столбца1":[значение1, значение2, значение3,...], "Заголовок столбца2":[значение1,значение2, значение3...]}
Их нужно записать в CSV, так чтобы каждая пара ключ-значение образовала столбец, где ключ - заголовок, а значение (список) - соотвественно данные под заголовком в столбец.

Пытаюсь использовать такой фрагмент, но он все лепит в строки:
with open("result.csv", mode="w", encoding='utf-8-sig') as w_file:
file_writer = csv.writer(w_file, delimiter = ";", lineterminator="\r")
file_writer.writerow(data.keys())
file_writer.writerows(data.values())

В итоге заголовки пишет правильно, а вот значения - нет.
и как я только не пытался вывести значения, все время кривь какая-то...
По идее нужно переделать словать в список списков, где каждый список будет строкой csv - для этого нужно от каждого ключа взять первое значение, записать в список-строку, потом следующее и т.д. я даже не представляю как такое итерировать.
Наверняка должен быть способ проще, как это записать в csv 1й строчкой.
  • Вопрос задан
  • 1583 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Открой для себя функции zip() и itertools.zip_longest().
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Maksim_64
@Maksim_64
Data Analyst
в модуле csv есть класс DictWriter.
Ну я бы использовал pandas потому что проще. Из той структуры данных что у вас есть легко создать dataframe и писать куда захочется хоть в csv, хоть в базу, хоть в excel и т.д.
предварительно установив pandas
import pandas as pd
df = pd.DataFrame(data)
df.to_csv('file.csv')

Плюс с этим фреймом можно работать какого только функционала для него нет. И писать куда угодно удобно. И там параметров записи сколько хочешь в методе (to_csv), отрегулировать легко.
Ответ написан
@igor6130
Попробуйте

file_writer.writerows(list(data.values()))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы