python-3.x - 无法让 dictWriter 构建 csv
问题描述
我是 Python 世界的新手,所以很难理解 dictwriter 的工作原理。我正在尝试从字典中创建一个 csv 文件,其中每个键都附加了一个元组作为值,但无法弄清楚如何。代码(字典“book”必须出名为“saving”的函数):
book = {"000011111":("John","Doe",23,"Kendo"),"000022222":("Petra","Richards",22, "Swimming")}
import csv
def saving():
try:
f = open("file1.csv", "w+")
fields = ["Card", "Name", "Surname", "Age", "Hobbie"]
writer = csv.DictWriter(f, fieldnames=fields)
writer.writeheader()
writer.writerows({"Card": book.keys(), "Name": book[0], "Surname": book[1], "Age": book[2], "Hobbie": book[3]})
print("Data saved to csv")
return True
except IOError:
print("I/O ERROR")
return False
saving()
给我:
关键错误:0
解决方案
book
是一个字典。它不能按位置(例如book[0]
)索引,它有键和值。您可能希望遍历 中的所有键/值对book
,如下所示:
book = {"000011111":("John","Doe",23,"Kendo"),"000022222":("Petra","Richards",22, "Swimming")}
def saving():
try:
for codekey, first_last_age_hobby in book.items():
f = open("file1.csv", "w+")
fields = ["Card", "Name", "Surname", "Age", "Hobbie"]
writer = csv.DictWriter(f, fieldnames=fields)
writer.writeheader()
writer.writerows({
"Card": codekey,
"Name": first_last_age_hobby[0],
"Surname": first_last_age_hobby[1],
"Age": first_last_age_hobby[2],
"Hobbie": first_last_age_hobby[3]
})
print("Data saved to csv")
return True
except IOError:
print("I/O ERROR")
return False
您错过了一个循环,以获取每个键的四个值。快乐编码!
推荐阅读
- c# - Rengine.GetInstance() 显示错误
- python - 使用python从扫描的图像中获取戳日期
- vba - 如何使用 VBA 编程填充 Excel 中的空行?
- mongodb - 为开发工作托管我自己的 mongodb 服务器需要什么?
- objective-c - 使用 Apple 的 Metal 的透明窗口和视图
- php - 尝试从 Google Maps API 按坐标检索地址时出错
- bash - 获取多个(任意数量的输入)输入字符串并在 shell 中连接
- python - 在熊猫数据框中将列转换为表头
- javascript - 如何将 webpack 3.5.4 配置为只为 JS 创建源映射并跳过 CSS?
- java - 长到字节数组无效