django jsonresponse 中的特殊字符 (utf-8)

Jav*_*pos 2 django json utf-8 python-3.5

我在 Django 中使用 json 响应,但我有特殊字符(ñáé 等...)

我的看法

   def get_agencies(request):
        qr = Agency.objects.all()
        qr_jason = serializers.serialize('json',qr)
        return JsonResponse(qr_jason, safe=False)
Run Code Online (Sandbox Code Playgroud)

但是,如果我在 json 中输入像 ñ 这样的特殊字符,我会收到等效的 ascii。实际上我可以制作一个字典,然后用字典制作 JasonResponse 并且它可以工作,我找不到使用带有 utf-8 的 serializers.serialize 的方法。

json 收到(u00f1 是 ñ)

// 20170124165944
// http://localhost:8080/get_agencies/

"[
  {
    \"model\": \"items.agency\",
    \"pk\": 1,
    \"fields\": {
      \"name\": \"asdk\\u00f1ld\",
      \"tipo\": \"librevile\",
      \"adress\": \"laslkfdli323,
      ls\\u00f1\\u00f1\",
      \"phone\": \"56549875\",
      \"web\": \"http: //www.systmatic.com.mx\",
      \"lat\": 23.514646,
      \"lng\": -26.152684,
      \"created\": \"2017-01-24T00: 56: 28.302Z\",
      \"last_updated\": \"2017-01-24T22: 22: 08.856Z\"
    }
  }
]"
Run Code Online (Sandbox Code Playgroud)

Aym*_*bsi 6

更快的解决方案:

def get_agencies(request):
    qr = Agency.objects.all().values()
    qr_list = list(qr)
    return JsonResponse(qr_list, , safe=False, json_dumps_params={'ensure_ascii':False})
Run Code Online (Sandbox Code Playgroud)