Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python/Django中读取CSV-csvDict的奇怪映射_Python_Django_Csv - Fatal编程技术网

在Python/Django中读取CSV-csvDict的奇怪映射

在Python/Django中读取CSV-csvDict的奇怪映射,python,django,csv,Python,Django,Csv,我正在尝试在我的views.py文件中逐行读取csv文件。csv文件的结构如下所示: xk,ab,cd 11,20,30 31、27、35 等 在执行上面最后一行之前,当我在pdb中打印'row'时,我得到{'x':'k'}。然而,我应该得到“11、20、30”(或类似的数据,因为DictReader应该自动使用第一行作为标题。当我在pdb中打印文件时,我得到: “xk、ab、cd\n11,20,30\n31,27,35”等。如何正确读取csv文件 在评论中解决: 在不使用.read()方法的情

我正在尝试在我的views.py文件中逐行读取csv文件。csv文件的结构如下所示:

xk,ab,cd

11,20,30

31、27、35

在执行上面最后一行之前,当我在pdb中打印'row'时,我得到{'x':'k'}。然而,我应该得到“11、20、30”(或类似的数据,因为DictReader应该自动使用第一行作为标题。当我在pdb中打印文件时,我得到:

“xk、ab、cd\n11,20,30\n31,27,35”等。如何正确读取csv文件

在评论中解决:


在不使用
.read()
方法的情况下尝试相同的方法,如–PRMoureu


request.FILES['csv']
返回一个UploadedFile对象,它似乎适合您的dictReader方法–PRMoureu

^^成功了。谢谢!!–user7518095


我不确定
请求.FILES['csv'].read()
,用open打开
语句打开
中的文件不是一个选项吗?用open有问题,这就是我使用.read()的原因。这有几个线程:/(我得到这个错误:TypeError:'强制使用Unicode:需要字符串或缓冲区,InMemoryPloadeFile找到')在不使用
.read()
方法的情况下尝试同样的方法,如在
请求.FILES['csv']
中返回一个UploadedFile对象,该对象似乎适合您的dictReader方法
if request.method == "POST":
    pdb.set_trace()
    form = FormName(request.POST, request.FILES)
    file = request.FILES['csv'].read()
    if form.is_valid():       
        try:
            reader = csv.DictReader(file)
            for row in reader:
                xk = row['xk']