ParseError at /api/ JSON parse error - Expecting value: line 1 column 1 (char 0)

'''

Внутренняя ошибка сервера: /api/ Traceback (последний последний вызов): File "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\site-packages\rest_framework\parsers.py", line 65, in parse return json.load(decoded_stream, parse_constant=parse_constant) Файл "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\site-packages\rest_framework\utils\json.py", строка 31, in load return json.load(*args, **kwargs) Файл "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\json_init_.py", строка 293, in load return loads(fp.read(), Файл "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\json_init_.py", строка 370, in loads return cls(**kw).decode(s) Файл "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", строка 337, в decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) Файл "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", строка 355, в raw_decode raise JSONDecodeError("Ожидается значение", s, err.value) from None json.decoder.JSONDecodeError: Ожидаемое значение: строка 1 столбец 1 (char 0)

Во время обработки вышеуказанного исключения произошло другое исключение:

Traceback (последний последний вызов): File "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\exception.py", line 47, in inner response = get_response(request) Файл "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\base.py", строка 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) Файл "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\site-packages\django\views\generic\base.py", строка 70, in view return self.dispatch(request, *args, **kwargs) Файл "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\site-packages\django\views\generic\base.py", строка 98, в dispatch return handler(request, *args, **kwargs) Файл "F:\Projects\DRF\fpro\firstapp\views.py", строка 17, в get data=JSONParser().parse(stream) Файл "C:\Users\Biswojit\AppData\Local\Programs\Python\Python38\lib\site-packages\rest_framework\parsers.py", строка 67, in parse raise ParseError('Ошибка разбора JSON - %s' % str(exc)) rest_framework.exceptions.ParseError: JSON parse error - Expecting value: line 1 column 1 (char 0) [17/Sep/2021 12:06:07] "GET /api/ HTTP/1.1" 500 102139

F:\Projects\DRF\fpro>json.decoder.JSONDecodeError: Ожидаемое значение: строка 1 столбец 1 (char 0) '''

django views.py

from firstapp.serializers import Employeeserializers
from django.shortcuts import render
from django.views.generic import View
import io
from rest_framework import serializers
from rest_framework.parsers import JSONParser
from .models import Employee
from rest_framework.renderers import JSONRenderer
from django.http import HttpResponse
import json
# Create your views here.

class EmployeeCRUD(View):
    def get(self,request,*args,**kwargs):
        json_data=request.body
        stream=io.BytesIO(json_data)
        data=JSONParser().parse(stream)
        id=data.get('id',None)
        if id is not None:
            emp=Employee.objects.get(id=id)
            serializer=Employeeserializers(emp)
            json_data=JSONRenderer().render(serializer.data)
            return HttpResponse(json_data,content_type='application/json')
        qs=Employee.objects.all()
        serializer=Employeeserializers(qs,many=True)
        json_data=JSONRenderer().render(serializer.data)
        return HttpResponse(json_data,content_type='application/json')
    


test.py

import requests
import json
BASE_URL='http://127.0.0.1:8000/'
ENDPOINT='api'
def get_resource(id=None):
    data={}
    if id is not None:
        data={
            'id':id
        }
    resp=requests.get(BASE_URL+ENDPOINT,data=json.dumps(data))
    print(resp.status_code)
    print('helloooo')
    print(resp.json())

get_resource(1)

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