簡體   English   中英

如何將列表字典寫入csv文件?

[英]How to write a dictionary of lists to a csv file?

我有這個列表字典,我想將其寫入CSV文件:

file2_Dict =  {'id': ' ', 'gender': ['M', 'M'], 'name': ['Smith', 'John'], 'city': ['Omaha','Lincoln']}

問題在於,並非詞典的所有鍵都有一個項目列表作為值。 在這種情況下,鍵(即'id' )具有一個字符串作為值(即" " )。 我嘗試使用Tim Pietzcker提供的解決方案,但這僅輸出csv文件的標題(字典的鍵),如下所示:

id, gender, name, city

預期的輸出應該是這樣的:

 id, gender, name, city
  ,M,Smith,Omaha
  ,M,John,Lincoln

任何想法如何解決這個問題?

您可以預處理字典,並用空列表替換“空”值。 然后使用itertools.izip_longest()代替zip()

import csv
from itertools import izip_longest

file2_Dict =  {'id': ' ', 'gender': ['M', 'M'], 'name': ['Smith', 'John'], 'city': ['Omaha','Lincoln']}

# replace space string values with empty lists
for key, value in file2_Dict.items():
    if value == ' ':
        file2_Dict[key] = []

with open("test.csv", "wb") as outfile:
   writer = csv.writer(outfile)
   writer.writerow(file2_Dict.keys())
   writer.writerows(izip_longest(*file2_Dict.values()))

會產生:

gender,city,id,name
M,Omaha,,Smith
M,Lincoln,,John

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM