簡體   English   中英

Django 模型不是 JSON 可序列化的

[英]Django Model is not JSON serializable

我試圖以 JSON 格式返回 Django 模型的字典。

我嘗試過序列化程序、model_to_dict、json.dump,但似乎無法正常工作。

一小段代碼:

    def get_queryset(self):
        queryset = (Venue.objects.all())
        location = self.request.query_params.get('location', None)
        latitude = location.split('S')[0]
        longitude = location.split('S')[1]
        venue_gaps = {}
        for venue in queryset.iterator():
            locationArray = [y.strip() for y in venue.postcode.split(',')]
            distance = gmaps.distance_matrix([str(latitude) + " " + str(longitude)], [str(locationArray[0]) + " " + str(locationArray[1])], mode='driving')['rows'][0]['elements'][0]
            m = distance["distance"]["value"]
            venue_gaps[m] = venue
        sorted_venues = dict(sorted(venue_gaps.items()))
        return JsonResponse(json.dumps(sorted_venues))

我創建的字典是一個 {int:object, int:object, int:object, ....}

我希望將其作為響應返回。 我不斷收到諸如“類型錯誤:對象類型的對象不是 JSON 可序列化的”之類的問題

使用django.core.serializers

from django.core import serializers

qs = YourModel.objects.filter(foo='bar')
serialized_qs = serializers.serialize('json', qs)

print(serialized_qs)

文檔: https : //docs.djangoproject.com/en/2.2/topics/serialization/

我相信更簡單的問題:

 return JsonResponse(json.dumps(sorted_venues))

是多余的,這應該有效:

return JsonResponse(sorted_venues)

暫無
暫無

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

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