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?的主要内容,如果未能解决你的问题,请参考以下文章