Django rest api csv to json

I would like to create a django rest api that receives a csv file and then response the file in a json format. How do I achieve this without using models and anything related with databases? I don't want to use a database because it's assumed that the csv files will have different structure every time

This is my first django project and I've seen lots of tutorials, even I did the first tutorial from django website but I can't understand how to do this task without the database. Thanks!

since you have not tried anything on your own Here is how you can do it

 from rest_franework.generics import CreateAPIView
    class ReadCSVView(CreateAPIView):
        # permission_classes = [IsAuthenticated]
        serializer_class = ReadCSVSerializer
        queryset = ''
        def perform_create(self, serializer):
            file = serializer.validated_data['file']
            decoded_file =
            io_string = io.StringIO(decoded_file)
            reader = csv.reader(io_string)
            next(reader) # incase you want to skip first row else remove this 
            return reader
        def create(self, request, *args, **kwargs):
            serializer = self.get_serializer(
            final_data = []
            for row in self.perform_create(serializer):
            return Response(final_data, status=status.HTTP_201_CREATED)

just create one serializers to read csv.

from rest_framework import serializers
class ReadCSVSerializer(serializers.Serializer):
    file = serializers.FileField()

now go to your and call the view class this way

urlpatterns = [

hope this clarifies your doubt

Back to Top