Python requests.json() возвращает строку, вместо json

Почему json() возвращает мне строку? Какой от него вообще тогда смысл? Разве он не должен возвращать объект json?

url = 'http://127.0.0.1:8000/bots/dialogs/get/bots/tokens'
x = requests.post(url).json()
print(x) # [{"model": "bot_manager.bot", "token": 13}, {"model": "bot_manager.bot", "token": 13444}, ]
print(type(x)) # <class 'str'>

Ответ на post-запрос

data = serializers.serialize("json", Bot.objects.all()) 
return JsonResponse(data, safe=False)

Ответы (1 шт):

Автор решения: Viewed

На основе поста, предложенного в комментариях.

JsonResponse берет dict и возвращает json-строку для передачи в запросах.

В вашем случае, вы даете JsonResponse уже json-строку и за счет safe=False не получаете ошибку об этом.

TypeError: In order to allow non-dict objects to be serialized set the safe parameter to False

Измените ответ на post-запрос, например, следующим способом

data = serializers.serialize("json", Bot.objects.all()) 
return HttpResponse(data, content_type='application/json')

Возможно это не сработает, поскольку я не знаком с django. Но причина выдачи строки вместо json-формата очевидна.

→ Ссылка