0

我正在尝试学习 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())
4

3 回答 3

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 中读取的另一个示例

网址.py

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

视图.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)}
    })
于 2015-11-21T05:30:07.627 回答
0

我能够通过这个链接找出解决方案:Decode json and Iterate through items in django template

它帮助了我,希望它能帮助和我有同样问题的其他人。

谢谢

于 2012-09-29T06:20:09.153 回答
0

目前尚不清楚您要循环的内容、位置或方式,但基本循环的工作方式如下:

data = {"key1":[1,2], "key":[4,5]}
for key, values in data.iteritems():
    print key, values
于 2012-09-28T07:11:02.057 回答