【发布时间】:2020-07-27 18:42:52
【问题描述】:
我正在尝试使用烧瓶从网站的联系表格(姓名、电子邮件等)收集信息到 csv 文件中。该数据被存储到 mega_data 变量中,该变量将其转换为字典。
字典是这样的; {'姓名':'xyz','电子邮件':'xyz','主题':'xyz','消息':'xyz'}
代码如下:
#Dictionary into CSV
def file_to_csv(data):
with open('database.csv', 'a+', newline='') as database:
full_name = data['Name']
email = data['Email']
subject = data['Subject']
message = data['Message']
writer = csv.writer(database2, delimiter=',',
quotechar='"', quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
writer.writerow([full_name, email, subject, message])
#Requesting DATA
@app.route('/submit_form', methods=['POST', 'GET'])
def submit_form():
error = None
if request.method == 'POST':
mega_data = {}
data = request.form.to_dict()
for k, v in data.items():
mega_data.update({k: v})
file_to_csv(mega_data)
return render_template('/thanks.html', name=data['Name'].split(' ')[0])
return 'Something went wrong, Try again!'
但是通过使用这种方法,我已经需要准备一个带有指定标题(或字典中的键)的 csv 文件,该文件将由任何字符分隔。 我基本上想要的是能够在函数本身中定义标题,这将生成 csv 文件,其中列出了标题及其相关值。
CSV 文件应如下所示:
NAME EMAIL SUBJECT MESSAGE
abc abc abc abc
xyz xyz xyz xyz
任何帮助将不胜感激!!!
【问题讨论】:
-
您是否尝试过使用
csv.DictWriter? -
我也试过了,但我想我们必须手动提供键值对,但在这种情况下,我有一个由网络生成的动态字典。
标签: python csv dictionary