簡體   English   中英

python字典轉換為json不符合預期

[英]python dictionary convert to json not as expected

我正在使用Django 1.8和python 2.7。 我想將數據庫(sqlite3)中的某些數據解析為JSON格式。

view.py:

def json_view(request):
    maps = Maps.objects.filter(data_id=3).values('ciudad', 'latitud', 'longitud')
    userPos = json.dumps(list(maps))
    return JsonResponse({'userPosView': userPos})

通過瀏覽器訪問視圖時,我得到:

{"userPosView": "[{\"latitud\": \"12.1363889\", \"ciudad\": \"Manague\", \"longitud\": \"-86.2513889\"}]"}

問題在於,userPosView看起來像鍵,其余的看起來像是userPosView的單個值

"[{\"latitud\": \"12.1363889\", \"ciudad\": \"Manague\", \"longitud\": \"-86.2513889\"}]".

如果有人可以幫助我,我將不勝感激,因為我無法訪問JSON對象上的經度和緯度值。

為什么要在userPosView中添加所有JSON?

 return JsonResponse({'userPosView': userPos}) 

您可以像這樣返回創建的轉儲

return JsonResponse(userPos)

JsonResponse()通常會負責將其內容編碼為json,因此最終會對數據進行雙重編碼-一種在您自己的代碼中,第二種在JsonResponse 修復很簡單:在將數據傳遞給JsonResponse之前,不要手動將其編碼為json:

def json_view(request):
    maps = Maps.objects.filter(data_id=3).values('ciudad', 'latitud', 'longitud')

    return JsonResponse({'userPosView': list(maps)})

暫無
暫無

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

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