Python django输出空csv

Python django输出空csv,python,django,csv,Python,Django,Csv,我正在使用django,我正在尝试将CSV_数据列表导出到CSV文件中。下面是我的csv.py: #coding=utf-8 from django.http import HttpResponse from django.template import loader, Context from demo.views import CSV_data def output(request, filename): response = HttpResponse(mimetype='tex

我正在使用django,我正在尝试将CSV_数据列表导出到CSV文件中。下面是我的csv.py:

#coding=utf-8
from django.http import HttpResponse
from django.template import loader, Context
from demo.views import CSV_data


def output(request, filename):
    response = HttpResponse(mimetype='text/csv')
    response['Content-Disposition'] = 'attachment; filename=%s.csv' % filename

    t = loader.get_template('csv.txt')
    c = Context({
        'data': CSV_data,
    })
    response.write(t.render(c))
    return response
CSV_数据是views.py中的一个变量,我尝试在模板中打印它,该值正常

 [(u'2012-06-01', [0, 0, 0]), ('2012-06-08', [0, 0, 0]), ('2012-06-15', [0, 0, 0]),    ('2012-06-22', [0, 0, 0]), ('2012-06-29', [0, 0, 0]), ('2012-07-06', [0, 0, 0]), ('2012-07-13', [0, 0, 0]), ('2012-07-20', [0, 0, 0]), ('2012-07-27', [0, 0, 0]), ('2012-08-03', [131, 164, 79.88]), ('2012-08-10', [110, 198, 55.56]), ('2012-08-17', [112, 197, 56.85]), ('2012-08-24', [147, 283, 51.94]), ('2012-08-31', [0, 306, 0.0]), ('2012-09-07', [418, 418, 100.0]), ('2012-09-14', [342, 342, 100.0]), ('2012-09-21', [732, 732, 100.0]), ('2012-09-28', [689, 689, 100.0]), ('2012-10-05', [775, 775, 100.0]), ('2012-10-12', [469, 469, 100.0]), ('2012-10-19', [477, 477, 100.0]), ('2012-10-26', [897, 897, 100.0]), ('2012-11-02', [216, 216, 100.0]), ('2012-11-09', [1046, 1046, 100.0]), ('2012-11-16', [840, 840, 100.0]), ('2012-11-23', [948, 948, 100.0])]
但是,生成的csv始终为空

我尝试将CSV_数据定义添加到CSV.py文件中,如下所示:

#coding=utf-8
from django.http import HttpResponse
from django.template import loader, Context

CSV_data = [(u'2012-06-01', [0, 0, 0]), ('2012-06-08', [0, 0, 0]), ('2012-06-15', [0, 0, 0]), ('2012-06-22', [0, 0, 0]), ('2012-06-29', [0, 0, 0]), ('2012-07-06', [0, 0, 0]), ('2012-07-13', [0, 0, 0]), ('2012-07-20', [0, 0, 0]), ('2012-07-27', [0, 0, 0]), ('2012-08-03', [131, 164, 79.88]), ('2012-08-10', [110, 198, 55.56]), ('2012-08-17', [112, 197, 56.85]), ('2012-08-24', [147, 283, 51.94]), ('2012-08-31', [0, 306, 0.0]), ('2012-09-07', [418, 418, 100.0]), ('2012-09-14', [342, 342, 100.0]), ('2012-09-21', [732, 732, 100.0]), ('2012-09-28', [689, 689, 100.0]), ('2012-10-05', [775, 775, 100.0]), ('2012-10-12', [469, 469, 100.0]), ('2012-10-19', [477, 477, 100.0]), ('2012-10-26', [897, 897, 100.0]), ('2012-11-02', [216, 216, 100.0]), ('2012-11-09', [1046, 1046, 100.0]), ('2012-11-16', [840, 840, 100.0]), ('2012-11-23', [948, 948, 100.0])]

def output(request, filename):
    response = HttpResponse(mimetype='text/csv')
    response['Content-Disposition'] = 'attachment; filename=%s.csv' % filename

    t = loader.get_template('csv.txt')
    c = Context({
        'data': CSV_data,
    })
    response.write(t.render(c))
    return response
那么输出csv不是空的。因此,我猜从views.py导入CSV_数据时出错了

问题是我已经测试了视图中的CSV_数据值是否正确。那么会出什么问题呢

**************更新*****************

views.py中的原始代码如下所示:

 CSV_data = []
 def part_usage_result(request):
     ...(details omit)
     usageDictWeek = helper.getResultByWeek(modelName, spareCode, start, end) #returns a list
     CSV_data=usageDictWeek
我改为:

 CSV_data = []
 def part_usage_result(request):
     ...(details omit)
     usageDictWeek = helper.getResultByWeek(modelName, spareCode, start, end) #returns a list
     for each in usageDictWeek:
         CSV_data.append(each)
现在csv的内容是正确的。
仍然不知道为什么会发生这种情况

请尝试使用关键字
content\u type
,而不是mimetype

,因为您没有提供
helper.getResultByWeek
详细信息以及如何调用它,我想它会返回一个带有列表值的全局变量,并且该变量会在这两者之间的某个位置进行修改

 CSV_data = usageDictWeek
不要复制列表,而是创建对现有列表的另一个引用。当以后的原始
usageDictWeek
被修改时,CSV\u数据也会被修改

当你这样做的时候

 CSV_data[:] = usageDictWeek 

将创建一份新的
usageDictWeek
副本,并将其分配给CSV\u数据。

仍然相同。我在views.py中做了一些更改,csv现在不是空的。请参阅问题中的更新您必须更深入:)帮助程序的相关代码是什么?如何调用
part\u usage\u result
?CSV_数据[:]=usageDictWeek有帮助吗?是的CSV_数据[:]=usageDictWeek有效!我想我需要学习更多的Python:)