0

祝大家好日子,

我想从字典中写一个 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

任何帮助将非常感激。谢谢

4

1 回答 1

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
于 2013-11-01T04:19:51.137 回答