我的问题有很多排列,但最接近的答案是:
不幸的是,每行打印输出如下:
matthew, green
rachel, blue
raymond, red
其中 somedict = dict(raymond = "red", rachel = "blue", matthew = "green")
我的问题需要更多这样的输出:
why, date, story
"because", "sunday", "blah blah blah"
我从用户输入中获取字典,重要的是输出文件将每个新答案(为什么、日期和故事)放在一个新行上(此外,列标题只打印一次)。所以我的代码如下所示:
import csv
o = "file.csv"
why = input("Why? ")
date = input("Date: ")
story = input("Story: ")
总之,我需要如下所示的输出:
why, date, story
"because", "sunday", "blah blah blah"
"i don't know", "monday", "blah blah blue"
"third base", "monday", "blah blah blarg"
我只是在寻找一种简单的方法来获取用户输入,将其写入 csv 文件中的新行。我已经在这里待了大约两个小时,所以这就是我在这里的原因。首先我遇到了两个 TypeError 错误:(1)'str' 不支持缓冲区接口(我通过在 with open(file, "wb", "utf-8") 语句中添加 "utf-8" 参数来解决这个问题)。(2) TypeError:需要整数。出于某种原因,我从“wb”中取出了“b”,它似乎摆脱了这个错误。我发布的链接让我几乎可以到达我需要的地方,但还不够,我真诚地感谢任何人可以提供的任何快速澄清。
编辑
为了清楚起见,我尝试了几种可能性。最有希望的是:
with open("file.csv", "w", encoding = "utf-8") as f:
w = csv.writer(f)
w.writerows(somedict.items())
它产生了我上面引用的第一个输出,这不是我需要的。
我也试过:
with open("file.csv", "w", encoding = "utf-8") as f:
w = csv.writer(f)
w.writerow(somedict.keys())
w.writerow(somedict.values())
但这给了我:_csv.Error: sequence expected