2012-09-28 115 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

这和我一直在使用的一样。 –