Django JsonResponse返回中文时显示unicode编码(\u67e5\u8be2)

关注公众号“轻松学编程”了解更多。

原因

这个unicode编码,是python3默认返回的编码。

解决方案

JsonResponse里面有个参数json_dumps_params,设置为json_dumps_params={‘ensure_ascii’:False}即可。

    data = {'msg': '创建成功',}
    return JsonResponse(data=data, json_dumps_params={'ensure_ascii': False})

 

字典json序列化与反序列

import json
a = {'hello world': '你好,世界'}
# dumps是序列化
c = json.dumps(a)
# loads是反序列化
print(json.loads(c))

 

输出:

{"hello world": "\u4f60\u597d\uff0c\u4e16\u754c"}

 

这是由于python3返回默认的是unicode编码,如果想显示中文可以增加一个参数ensure_ascii=False:

import json
a = {'hello world': '你好,世界'}
c = json.dumps(a, ensure_ascii=False)
# 
print(json.loads(c))

 

 

输出:

{'hello world': '你好,世界'}

 

另一种写法:

 

return render(request, 'list.html', {"form_list": json.dumps(form_list, ensure_ascii=False)} )

  

相关文章:

  • 2021-12-25
  • 2022-01-01
  • 2021-12-15
  • 2021-11-02
  • 2021-11-06
  • 2021-05-10
  • 2021-06-06
  • 2021-12-29
猜你喜欢
  • 2022-12-23
  • 2021-08-22
  • 2021-11-09
  • 2021-06-03
  • 2021-12-01
  • 2021-07-03
  • 2021-07-03
相关资源
相似解决方案