我想实施this:
from flask import Response
@app.route('/large.csv')
def generate_large_csv():
def generate():
for row in iter_all_rows():
yield ','.join(row) + '\n'
return Response(generate(), mimetype='text/csv')
但join
非常脆弱(不逃避任何事情)。是否有一种简单的,可接受的方法来转发csv行的数据?
我想避免使用full-fledged csv library:我不想编写或读取csv,我只想要一种简单的方法来生成单个转义的csv行。
答案 0 :(得分:1)
逃避csv的最简单方法是使用csv模块。您不需要写入文件,只需创建类似文件的对象:
import csv
class DummyFile:
def write(self, line):
self.line = line
def getvalue(self):
return self.line
@app.route('/large.csv')
def generate_large_csv():
dummy = DummyFile()
writer = csv.writer(dummy)
def generate():
for row in iter_all_rows():
writer.writerow(row)
yield dummy.getvalue()
return Response(generate(), mimetype='text/csv')