#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)