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)