djangoでjson応答を使用していますが、特殊文字(ñáéなど)があります
私の見解
def get_agencies(request):
qr = Agency.objects.all()
qr_jason = serializers.serialize("json",qr)
return JsonResponse(qr_jason, safe=False)
しかし、もしñのような特殊文字をjson私はアスキーの同等物を受け取ります。実際に辞書を作成してから、その辞書を使用してJasonResponseを作成すると、それが機能します。serializers.serializeをutf-8で使用する方法が見つかりません。
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"
}
}
]"
回答:
回答№1は2を使用してシリアル化することを書いたことを知っています django.core.serializers.serialize
しかし...あなたは回避策を行い、使用してシリアル化することができます json
標準ライブラリ。
import json
def get_agencies(request):
qr = Agency.objects.all().values()
qr_json = json.dumps(list(qr), ensure_ascii=False, default=str)
return JsonResponse(qr_json, safe=False)
私は追加しました default=str
〜へのパラメータ json.dumps
モデルにdatetimeフィールドがあることがわかったので、その問題に対処する必要があります。