【发布时间】:2015-01-15 20:09:31
【问题描述】:
我在 Flask 框架之外编写 CSV 没有问题。但是当我尝试从 Flask 编写它时,它会写入 CSV,但仅在一行上。
这是我正在关注的模板
@app.route('/download')
def download():
csv = """"REVIEW_DATE","AUTHOR","ISBN","DISCOUNTED_PRICE"
"1985/01/21","Douglas Adams",0345391802,5.95
"1990/01/12","Douglas Hofstadter",0465026567,9.95
"1998/07/15","Timothy ""The Parser"" Campbell",0968411304,18.99
"1999/12/03","Richard Friedman",0060630353,5.95
"2004/10/04","Randel Helms",0879755725,4.50"""
response = make_response(csv)
response.headers["Content-Disposition"] = "attachment; filename=books.csv"
return response
这完美地写入了 CSV,但是当我尝试使用我的代码时,我得到了一个长行。
我的代码:
@app.route('/download')
def post(self):
# lots of code
csvList.append([all,my,data,goes,here])
csvList = str(re.sub('\[|\]','',str(csvList))) # convert to a string; remove brackets
response = make_response(csvList)
response.headers['Content-Disposition'] = "attachment; filename=myCSV.csv"
return response
我的输出:
Nashville Physician Service Ce,Treasury Specialist,Brentwood,TN,(615) 507-1646,La Petite Academy,Afternoon Teacher Aide,Goodlettsville,TN,(615) 859-2034,Nashville Physician Service Ce,Denial Resolution Specialist,Brentwood,TN,(615) 507-1646
谢谢。
编辑:我尝试了几乎所有的答案,它们大部分都有效,但我选择了vectorfrog,因为它符合我想要完成的目标。
【问题讨论】:
-
您可能应该使用 csv (docs.python.org/2/library/csv.html) 模块。
-
另外,这是在烧瓶中创建文件以供下载的更惯用的方式:flask.pocoo.org/snippets/32
-
谢谢@DavidK.Hess!我不仅一直在尝试学习 python 基础知识,而且还真的在尝试编写惯用的代码。这绝对有帮助。