我刚刚开始使用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()
我现在输出的东西是一行,其中包含第一个字典中的数据,我只是希望它们分开,每个都在其行内的自己的列中。
答案 0 :(得分:0)
令人惊讶的是,这里有很多问题试图在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
模块存在许多问题
以及examples in documentation。