在Python/Django中读取CSV-csvDict的奇怪映射
我正在尝试在我的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文件 在评论中解决:在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()方法的情
在不使用
.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']