import csv
phone = input("Enter phone name")
os = input("Enter OS")
with open("phos.csv", "a") as phos:
phos_dict = csv.DictWriter(phos, fieldnames = ["phone_model", "phone_os"])
phos_dict.writerow({"phone_model": phone, "phone_os": os})
即使我将 CSV 文件留空,上面的代码也能正常工作。那么代码如何知道如何正确实现/写入字典到 phos.csv 文件?
之所以有效,是因为您设置了
fieldnames
。然后,当您发送带有正确键的字典时,代码知道将值放在哪里。
如果您在
key:value
中传递了一个 phos_dict.writerow({"phone_model": phone, "phone_os": os})
而在 fieldnames = ["phone_model", "phone_os"]
中未实现,您将收到以下错误:
ValueError: dict contains fields not in fieldnames