2015-06-23 2 views
3

Я пытаюсь написать словарь списков в файл csv. Решение в: Write dictionary of lists to a CSV fileнаписать словарь списков различной длины в файл csv

урезает более длинные списки. Например, если я хочу написать следующее:

d = {"key1": [1, 2, 3], "key2": [4, 5, 6], "key3": [7, 8, 9, 11]} 
with open("test.csv", "wb") as outfile: 
writer = csv.writer(outfile) 
writer.writerow(d.keys()) 
writer.writerows(zip(*d.values())) 

Результаты является

key3 key2 key1 
7  4  1 
8  5 2 
9  6 3 

11 удаляется из Key3. Есть идеи?

+0

Используйте петлю вместо writerows + почтовый –

+0

Я пытался, но не мог получить то, что я хочу. – Omar

ответ

2

Быстрый и простой ответ заключается в использовании itertools.izip_longest вместо zip

import itertools 
import csv 

d = {"key1": [1, 2, 3], "key2": [4, 5, 6], "key3": [7, 8, 9, 11]} 
with open("test.csv", "wb") as outfile: 
    writer = csv.writer(outfile) 
    writer.writerow(d.keys()) 
    writer.writerows(itertools.izip_longest(*d.values())) 
Смежные вопросы