2012-09-28 156 views
0

我努力學習的Django/Python和我試圖找出如何讀取JSON數據...django/python閱讀json?

我有類似:

{ 
    region: { 
    span: { 
     latitude_delta: 0.08762885999999526, 
     longitude_delta: 0.044015180000002374 
    }, 
    center: { 
     latitude: 37.760948299999995, 
     longitude: -122.4174594 
    } 
    },... 
} 

我試圖讀取特定數據在我的html頁面。現在這個json數據正在html頁面中顯示。

在此JSON的來源是這樣的:

return HttpResponse(json.dumps(response),mimetype="application/json") 

我試圖找出得到具體數據的Django的/ Python的約定?我應該爲每個循環做一個?我來自一個自學的PHP背景,我正在試圖自學python/django。

謝謝

編輯:

我返回的HttpResponse之前也有這個在我view.py

try: 
     conn = urllib2.urlopen(signed_url, None) 
     try: 
      response = json.loads(conn.read()) 
     finally: 
      conn.close() 
    except urllib2.HTTPError, error: 
     response = json.loads(error.read()) 
+0

「Som像「?這既不是有效的JSON也不是Python ... –

+0

你看過http://stackoverflow.com/questions/3345076/django-parse-json-in-my-template-using-javascript – Rohan

+1

?這有點令人困惑......你設法使用json.dumps(response)創建json,響應應該是你的數據作爲python對象。 json.dumps()將它變成json。 json.dumps()的反義詞是json.loads() – monkut

回答

0

目前尚不清楚你想要什麼遍歷,地方,怎麼去,但基本的循環這樣的工作:

data = {"key1":[1,2], "key":[4,5]} 
for key, values in data.iteritems(): 
    print key, values 
+0

這將進入我的views.py在相同的'def'下?例如,如果我所有的代碼都在'def search(request)'中,我只想看看我是否應該在.html文件中循環?或在view.py文件中循環?我不知道這對你有意義嗎? – hellomello

+0

嗯......你可以在視圖中創建一個循環和解析對象,或者在模板中循環。一般來說,在視圖中管理數據以便在傳遞到模板之前將其放入一個乾淨的結構中會更容易。如果你還沒有,我建議你嘗試python教程,然後django教程。 – monkut

1

這是閱讀HTML JSON最簡單的方法(Django在發送)

def sendJson(request): 
    if request.method == 'GET': 
     context = {"name":"Json Sample Data"} 
     return render_to_response('name.html',context)   

Django的模板HTML代碼

<div class="col-md-9 center"> 
    <span class="top-text">{{name}}</span> 
</div> 

現在根據您:

def sendJson(request): 
    if request.method == 'GET': 
     jsonData = { 
      region: { 
      span: { 
      latitude_delta: 0.08762885999999526, 
      longitude_delta: 0.044015180000002374 
      }, 
      center: { 
      latitude: 37.760948299999995, 
      longitude: -122.4174594 
      } 
     } 
     } 
     data = json.dumps(jsonData) 
     return HttpResponse(data, content_type="application/json") 

你可以使用jQuery也

另一個例子創建JSON閱讀這些數據,並在HTML閱讀

url.py

url(r'^anotherexample/$', 'views.anotherexample', name="anotherexample"), 

view.py

def anotherexample(request): 
    if request.method == 'POST': 
     _date = strftime("%c") 
     response_data = {} 
     response_data['status'] = 'taken' 
     response_data['issueTakenTime'] = _date 
     return HttpResponse(json.dumps(response_data), content_type="application/json") 

HTML視圖和jquery

$.ajax({ 
    url: "/anotherexample/", 
    // contentType: "application/json; charset=UTF-8", 
    data: { csrfmiddlewaretoken: "{{ csrf_token }}", // < here 
     status : "taken" 
     }, 
    type: "POST", 
    error: function(res) { 
     console.log("errr", res) 
    }, 
    success: function(res) { 
     console.log("res", res)} 
    }) 
+0

這和我一直在使用的一樣。 –