大家好日子,
我想从字典中编写一个csv文件。并遵循这里的所有内容https://docs.djangoproject.com/en/dev/howto/outputting-csv/我刚刚将csv_data更改为字典
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="some_file(%s).csv"'
csv_data = {'data' : [('quick', 'brown', 'fox', 'jump'), ('over', 'the', 'lazy', 'dog'), 'total' : 23, 'subtotal': 4}
t = loader.get_template('main/report/contract_position.txt')
c = Context({
'csv_data' : csv_data,
})
response.write(t.render(c))
return response
在我的.txt文件中
"header1", "header2", "header3", "header4", "total", "subtotal"
{% for item in csv_data %}
???? #what should be here. Cuz I can't do something item.0|addslashes. It only takes out the first character of the string
{% endfor %}
我想在其中制作类似的东西。
header1 header2 header3 header4
quick brown fox jump
over the lazy dog
total subtotal
23 4
非常感谢任何帮助。感谢
答案 0 :(得分:1)
使用csv
:
import csv
def your_view(request, ...):
csv_data = {
'data': [
('quick', 'brown', 'fox', 'jump'),
('over', 'the', 'lazy', 'dog')
],
'total': 23,
'subtotal': 4
}
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="some_file.csv"'
writer = csv.writer(response, delimiter='\t')
writer.writerow(['header1', 'header2', 'header3', 'header4'])
writer.writerows(csv_data['data'])
writer.writerow(['tota', 'subtotal'])
writer.writerow([csv_data['total'], csv_data['subtotal']])
return response