Python 获取类型错误:应为str、bytes或os.PathLike对象,而不是inMemoryPloadedFile
使用上面的代码,我试图上传一个csv文件并读取它。但是我得到了以下错误 打开(request.FILES['csv'])作为文件: TypeError:应为str、bytes或os.PathLike对象,而不是InMemoryUploadedFile 我错过了什么 django 2.0.7Python 获取类型错误:应为str、bytes或os.PathLike对象,而不是inMemoryPloadedFile,python,django,Python,Django,使用上面的代码,我试图上传一个csv文件并读取它。但是我得到了以下错误 打开(request.FILES['csv'])作为文件: TypeError:应为str、bytes或os.PathLike对象,而不是InMemoryUploadedFile 我错过了什么 django 2.0.7 Python3.5尝试将请求读入BytesIO流,然后对该对象执行操作 def post(self, request): form = CsvUploadForm(request.POST, requ
Python3.5尝试将请求读入BytesIO流,然后对该对象执行操作
def post(self, request):
form = CsvUploadForm(request.POST, request.FILES)
if form.is_valid():
with open(request.FILES['csv']) as csv_source:
has_header = csv.Sniffer().has_header(csv_source.read(1024))
csv_source.seek(0)
reader = csv.DictReader(csv_source)
....
....
return HttpResponse("file Uploaded")
如上所述,您可以直接使用文件流作为,def post(self, request):
form = CsvUploadForm(request.POST, request.FILES)
if form.is_valid():
csv_source = BytesIO(request.FILES['csv'].read())
has_header = csv.Sniffer().has_header(csv_source.read(1024))
csv_source.seek(0)
reader = csv.DictReader(csv_source)
....
....
return HttpResponse("file Uploaded")
def post(自我,请求):
form=CsvUploadForm(request.POST、request.FILES)
如果form.is_有效():
reader=csv.DictReader(request.FILES['csv'])
....
....
return HttpResponse(“上传的文件”)
您不需要打开它,它已经是一个文件。直接将其传递给csv函数。@DanielRoseman,如果您可以将其添加为答案,我可以接受。谢谢
def post(self, request):
form = CsvUploadForm(request.POST, request.FILES)
if form.is_valid():
reader = csv.DictReader(request.FILES['csv'])
....
....
return HttpResponse("file Uploaded")