Django rest api csv в json

Я хотел бы создать django rest api, который получает файл csv и затем отвечает на него в формате json. Как мне этого добиться без использования моделей и всего, что связано с базами данных? Я не хочу использовать базу данных, потому что предполагается, что файлы csv будут иметь разную структуру каждый раз

Это мой первый проект django и я видел много туториалов, даже я сделал первый туториал с сайта django, но я не могу понять, как сделать эту задачу без базы данных. Спасибо!

поскольку вы не пробовали ничего сделать самостоятельно Вот как вы можете это сделать

views.py

 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 = file.read().decode()
            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(data=request.data)
            serializer.is_valid(raise_exception=True)
            final_data = []
            for row in self.perform_create(serializer):
                    final_data.append(row)
            return Response(final_data, status=status.HTTP_201_CREATED)

просто создайте один сериализатор для чтения csv. serializers.py

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

теперь перейдите к вашему urls.py и вызовите класс view таким образом

urlpatterns = [
    path("read-csv",views.ReadCSVView.as_view(),name="csv")]

надеюсь, это прояснит ваши сомнения

Вернуться на верх