Написание словаря Python с несколькими ключами для CSV

#python #python-2.7 #dictionary #export-to-csv #import-csv

Вопрос:

Как написать словарь с несколькими ключами в csv по вертикали, как показано на рисунке? Я могу использовать только собственные пакеты, такие как csv. Я получаю этот вывод, но он мне нужен в качестве вывода.

Ниже приведен фрагмент (пробовал использовать различные методы зацикливания), но, похоже, не сработал !

 import csv

my_file = open("test.csv", mode="w")
sorted_keys = sorted(csv_dict)

writer = csv.DictWriter(my_file, fieldnames = sorted_keys, restval='')
writer.writeheader()
writer.writerow(csv_dict)
 

Комментарии:

1. Привет, Добро пожаловать в SO. Не могли бы вы добавить словарь к вопросу? Не все хотели бы вводить его вручную для вас. Кроме того, скопируйте и вставьте необходимые выходные данные в вопрос, чем добавлять ссылку на файл изображения.

2. Является ли Панда приемлемым пакетом?

3. нет, следует использовать только собственные пакеты, чтобы один и тот же сценарий можно было запускать на разных машинах.

4. @Pluviophile, мой словарь взят из функции, параметры которой действуют как ключи и значения, и та же функция добавляет пару ключ:значения в словарь. Поэтому я не могу опубликовать фактический словарь.

5. Разве вы не можете распечатать csv_dict на терминале и скопировать/вставить его? Или отредактируйте его, чтобы сделать его короче, если потребуется.

Ответ №1:

Отвечая на мой собственный вопрос, но этот фрагмент сработал

 csv_file = 'file.csv'
with open(csv_file, 'wb') as fd:
writer = csv.writer(fd, delimiter=',')

keys = sorted(dictionary) 
# Format headers for aesthetics
headers = [' {} '.format(key) for key in keys]
writer.writerow(headers)

# Format data to create convenient csv format
csv_data = itertools.izip_longest(*(dictionary[key] for key in keys),
                                  fillvalue='     ')
writer.writerows(csv_data)