Джанго минимизирует JSON в JsonResponse

Есть ли способ минимизировать JSON в JsonResponse? Под минимизацией я имею в виду удаление пробелов и т. Д.

Благодаря этому я могу сэкономить около 100 КБ на моем сервере;).

Пример:

У меня есть JSON:

{"text1": 1324, "text2": "abc", "text3": "ddd"}

И я хочу добиться чего-то вроде этого:

{"text1":1324,"text2":"abc","text3":"ddd"}

Теперь создание ответа выглядит так:

my_dict = dict()
my_dict['text1'] = 1324
my_dict['text2'] = 'abc'
my_dict['text3'] = 'ddd'
return JsonResponse(my_dict, safe=False)

2 ответа

Если вы делаете это в достаточном количестве мест, вы можете создать свой собственный JsonResponse (в основном скопированный из источника django):

class JsonMinResponse(HttpResponse):
    def __init__(self, data, encoder=DjangoJSONEncoder, safe=True, **kwargs):
        if safe and not isinstance(data, dict):
            raise TypeError('In order to allow non-dict objects to be '
                'serialized set the safe parameter to False')
        kwargs.setdefault('content_type', 'application/json')
        data = json.dumps(data, separators = (',', ':')), cls=encoder)
        super(JsonMinResponse, self).__init__(content=data, **kwargs)

HTTPResponse позволяет нам возвращать данные в указанном формате, используя разделители с json.dumps

HttpResponse(json.dumps(data, separators = (',', ':')), content_type = 'application/json')
Другие вопросы по тегам