我有一個python字典,其中每個KEY可以有一個可變數量的VALUES(排列在列表中)。如何按鍵排序不均勻字典並創建CSV
例如:
{'607': [36146], '448': [50890, 44513], '626': [44349, 44436]}
我想要做的就是生成的這種信息的CSV,象這樣的格式:
448 , 607 , 626
50890,36146,44349
44513, ,44436
目前我的代碼可以生成CSV如這是唯一的問題,即CSV的列未按照KEY的升序數字排序。到目前爲止我的代碼是下面:
csv_file = 'file.csv'
with open(csv_file, 'wb') as fd:
writer = csv.writer(fd, delimiter = ',')
# Format headers for aesthetics
csv_headers = [' {} '.format(elem) for elem in dictionary.keys()]
writer.writerow(headers)
# Format data to create convenient csv format
csv_data = itertools.izip_longest(*dictionary.values(), fillvalue = ' ')
writer.writerows(csv_data)
正如你看到的我是從價值觀分裂密鑰,並將它們分開來寫,但如果我想通過鍵的列進行排序我想這可能不是最好的辦法去做這件事。因此,我希望有人能指出我正確的(也是最pythonic)方向。
我怎樣才能做到這一點與我的字典不平衡的性質?我曾試圖使用csv.Dictwriter,但它不能很好地與每個列表中的可變數量的條目... – user1182556 2014-11-06 12:34:21
太棒了!選項1的作用像一個魅力,然而,選項2不寫入標題值?另外,你認爲哪一種是pythonic方法? – user1182556 2014-11-06 12:53:50
@ user1182556:我忘了調用'writeheader()'方法.. – 2014-11-06 12:56:40