django/python 读取 json?

Posted

技术标签:

【中文标题】django/python 读取 json?【英文标题】:django/python reading json? 【发布时间】:2012-09-20 00:34:05 【问题描述】:

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

【问题讨论】:

“类似的东西”?这既不是有效的 JSON 也不是 Python... 你看过***.com/questions/3345076/… ?这有点令人困惑......您设法使用 json.dumps(response) 创建 json,响应应该是您作为 python 对象的数据。 json.dumps() 将其转换为 json。 json.dumps() 的反义词是 json.loads() @monkut 我编辑了我的帖子。我认为是因为我在返回之前有 json.loads? json.loads() 将给定的 json 数据加载到您可以访问的 python 对象中。您的问题是什么? 【参考方案1】:

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

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

【讨论】:

这会进入我的views.py 下的相同def?例如,如果我所有的代码都在def search(request) 中,我只是想看看我是否应该在.html 文件中循环?或在 view.py 文件中循环?我不知道这对你是否有意义? hmmm...好吧,您可以创建一个循环并在视图中解析对象,或者在模板中循环。我会说通常更容易管理视图中的数据,以便在传递给模板之前将其放入一个干净的结构中。如果您还没有,我建议您先尝试 python 教程,然后再尝试 django 教程。【参考方案2】:

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

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

谢谢

【讨论】:

【参考方案3】:

这是在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)
    )

【讨论】:

这和我一直用的一样。

以上是关于django/python 读取 json?的主要内容,如果未能解决你的问题,请参考以下文章

如何用angularjs读取本地json

php,JavaScript 如何读取并修改json文件?

Android读取本地json文件的方法

HTML5怎么读取json文件

java读取json文件的问题

Java如何读取网址中的json内容