不能在 Django 中使用 JsonResponse
Cant use JsonResponse in Django
我有一堆值想从 views.py
函数发送到我在 Django 中的模板。我看到一些主题,最好的方法是 json
格式。所以我这样做了。但是因为我的值不是 ascii
,所以我使用的是升级版本,它在正常 Http response
中工作,但在 JSON response
中不工作。
这是我的代码
base = {weather_main_key : weather_main_values, wind_speed_key : wind_speed_value + "m", wind_deg_key : wind_deg_value, base_temp_key : base_temp_value + " ℃", base_press_key : base_press_value + " mbar", base_hum_key : base_hum_value + " % " }
base = json.dumps(base, ensure_ascii=False).encode('utf8')
return JsonResponse(json.dumps(base))
所以我收到一条错误消息
In order to allow non-dict objects to be serialized set the safe parameter to False.
所以我照它说的做了
JsonResponse(json.dumps(base, safe=False, ensure_ascii=False).encode('utf8'))
现在错误是
__init__() got an unexpected keyword argument 'safe'
而且我不能动...
哇哦,三重 编码。你为什么要这样做?
您序列化为 json。然后,在对 JsonResponse 的调用中,您再次序列化为 json。但是JsonResponse本身是做序列化的,所以你序列化了3次
停止那个;只需将字典传递给 JsonResponse。
base = {weather_main_key : weather_main_values, wind_speed_key : wind_speed_value + "m", wind_deg_key : wind_deg_value, base_temp_key : base_temp_value + " ℃", base_press_key : base_press_value + " mbar", base_hum_key : base_hum_value + " % " }
return JsonResponse(base)
我有一堆值想从 views.py
函数发送到我在 Django 中的模板。我看到一些主题,最好的方法是 json
格式。所以我这样做了。但是因为我的值不是 ascii
,所以我使用的是升级版本,它在正常 Http response
中工作,但在 JSON response
中不工作。
这是我的代码
base = {weather_main_key : weather_main_values, wind_speed_key : wind_speed_value + "m", wind_deg_key : wind_deg_value, base_temp_key : base_temp_value + " ℃", base_press_key : base_press_value + " mbar", base_hum_key : base_hum_value + " % " }
base = json.dumps(base, ensure_ascii=False).encode('utf8')
return JsonResponse(json.dumps(base))
所以我收到一条错误消息
In order to allow non-dict objects to be serialized set the safe parameter to False.
所以我照它说的做了
JsonResponse(json.dumps(base, safe=False, ensure_ascii=False).encode('utf8'))
现在错误是
__init__() got an unexpected keyword argument 'safe'
而且我不能动...
哇哦,三重 编码。你为什么要这样做?
您序列化为 json。然后,在对 JsonResponse 的调用中,您再次序列化为 json。但是JsonResponse本身是做序列化的,所以你序列化了3次
停止那个;只需将字典传递给 JsonResponse。
base = {weather_main_key : weather_main_values, wind_speed_key : wind_speed_value + "m", wind_deg_key : wind_deg_value, base_temp_key : base_temp_value + " ℃", base_press_key : base_press_value + " mbar", base_hum_key : base_hum_value + " % " }
return JsonResponse(base)