You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何开发无数据库的Django REST API:接收CSV返回JSON

无数据库的Django REST API:CSV转JSON

1. 基础配置

  • 先安装依赖:pip install djangorestframework
  • 在项目的settings.py中,将rest_framework和你的目标应用(比如命名为csv_converter)加入INSTALLED_APPS:
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'csv_converter',  # 替换成你的应用名称
]

2. 编写核心视图

在应用的views.py中创建一个API视图,专门处理CSV上传与JSON转换:

import csv
from io import StringIO
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status

class CSVToJSONAPI(APIView):
    def post(self, request):
        # 校验文件是否存在
        if 'file' not in request.FILES:
            return Response({"error": "请上传CSV文件"}, status=status.HTTP_400_BAD_REQUEST)
        
        uploaded_file = request.FILES['file']
        # 校验文件格式
        if not uploaded_file.name.lower().endswith('.csv'):
            return Response({"error": "仅支持CSV格式文件"}, status=status.HTTP_400_BAD_REQUEST)
        
        try:
            # 读取并解码文件内容
            content = uploaded_file.read().decode('utf-8')
            # 使用DictReader自动将表头作为键
            csv_reader = csv.DictReader(StringIO(content))
            # 转换为JSON格式的列表
            json_result = list(csv_reader)
            
            return Response(json_result, status=status.HTTP_200_OK)
        except Exception as e:
            return Response({"error": f"CSV解析失败: {str(e)}"}, status=status.HTTP_400_BAD_REQUEST)

3. 配置路由

在项目根目录的urls.py中添加API路由:

from django.urls import path
from csv_converter.views import CSVToJSONAPI

urlpatterns = [
    # 其他路由...
    path('api/csv-to-json/', CSVToJSONAPI.as_view(), name='csv_to_json'),
]

4. 测试接口

  • 启动Django服务:python manage.py runserver
  • 使用Postman、curl或其他工具发起POST请求到http://127.0.0.1:8000/api/csv-to-json/
  • 请求体选择form-data,键名设为file,上传本地任意结构的CSV文件,即可得到对应的JSON响应

内容的提问来源于stack exchange,提问作者user20627094

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 20:50:26