繁体   English   中英

将Python的列表或字典写入CSV文件(行包含多个列)

[英]Writing Python's List or Dictionary into CSV file (Row containing More than One Column)

我刚刚启动Python!

我想制作一个有字典的CSV文件,我想将它的每个成员打印在同一行的自己的列中。

就像我有一个字典数组,我希望每一行代表其中之一,每行每一列代表其中的一项。

import csv


"... we are going to create an array of dictionaries and print them all..."

st_dic = []

true = 1

while true:
    dummy = input("Please Enter name, email, mobile, university, major")
    x = dummy.split(",")

    if "Stop" in x:
        break

    dict ={"Name":x[0],"Email":x[1],"Mobile":x[2],"University":x[3],"Major":x[4]}
    st_dic.append(dict)

f2 = open("data.csv" , "w")

with open("data.csv", "r+") as f:
    writer = csv.writer(f)
    for item in st_dic:
        writer.writerow([item["Name"], item["Email"], item["Mobile"] , item["University"] , item["Major"]])
    f.close()

我现在输出的是一行,其中包含第一个字典中的数据,我只想将它们分开,每个都在其行内的自己的列中。

令人惊讶的是,这里有如此多的问题试图在while循环和input()命令中填充一些数据。 公平地说,这不是python的最佳用例。

想象一下,您刚才在字典中填写了代码:

dict1 = {'name': "Kain", 'email': 'make_it_up@something.com'} 
dict2 = {'name': "Abel", 'email': 'make_it_up2@otherthing.com'}
dict_list = [dict1, dict2]

之后,您可以轻松导出到csv:

import csv 
with open('data.csv', 'w') as f: 
    w = csv.DictWriter(f, ['name', 'email'], lineterminator='\n')
    w.writeheader()
    for row in dict_list:  
        w.writerow(row)

请注意,关于SO上的csv模块有很多问题,并且在文档中还有示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM