从post请求中读取CSV文件



我正试图从CSV文件中读取一些数据,但当我尝试用以下方法读取文件时,我得到了错误

ValueError:对关闭的文件执行I/O操作。

def post(self, request):
serializer = MosqueFileSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
file =pd.read_csv(request.FILES['file'])
return Response(status=status.HTTP_200_OK)

当我试图打开文件时,我得到了另一个错误

TypeError:应为str、字节或os。PathLike对象,而不是InMemoryUploadedFile

def post(self, request):
serializer = MosqueFileSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
file =pd.read_csv(open(request.FILES['file']))
return Response(status=status.HTTP_200_OK)

那么有人能帮我找到解决方案吗?

根据文档,InMemoryUploadedFile对象的文件指针位于其.file属性。open函数返回InMemoryUploadedFile对象本身。

open也是InMemoryUploadedFile实例的成员函数。因此,代替open(request.FILES['file'])

我建议你试试

request.FILES['file'].open()
file = pd.read_csv(request.FILES['file'].file)

编辑:修复了以前版本中的错误调用

相关内容

  • 没有找到相关文章

最新更新