我有一本字典:
dic = {"HM1": ['Jackson','Matt','M','Football'], "SM2":['Scott','Max','M']}
我需要一个代码来“写”这些字典数据到csv文件的形式:
HM1,Jackson,Matt,M,Football
SM2,Scott,Max,M
我有一个不起作用的代码:
with open("file.csv", "w", newline="") as new_data:
fieldnames = ['ID','Firstname','Lastname','Gender','Sports']
data_writer = csv.DictWriter(new_data, fieldnames=fieldnames)
for k in dic.keys():
r = dic[k]
data_writer.writerow({'ID':r[0],'Firstname':r[1],'Lastname':r[2],'Gender':r[3],'Sports':r[4]})
更正代码:
原始代码中的一些问题:
1.)您从未从字典键中写入“ID”列。
2.)您可以轻松地迭代
dic.items()
,它返回键和项,而不是使用r = dic[k]
。 3.)您的r
正在返回一个IndexError
,因为您的第二行缺少一个值,因此r[4]
将引发一个列表长度仅为3的错误。这可以通过列表理解来轻松地动态处理无论如何,输出:
我建议您以某种方式处理列表中丢失的数据(如“N/A”),而不是让列表长度不均匀。另一个答案的
pandas
解决方案很好,但是如果您对该模块或安装外部模块不太满意,那么这个解决方案只能使用csv
首先,确保你的列表长度相同
如果是这样,您必须使用pandas模块将其转换为数据帧并将数据帧转换为csv文件: 我用
然后像这样导入:
更新: 如果数据列表的长度不同,可以按以下方式处理:
相关问题 更多 >
编程相关推荐