Джанго минимизирует 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')