簡體   English   中英

無法在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本身會進行序列化,因此您已經進行了三次序列化。

別搞了; 只需將字典傳遞給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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM