在Django模板中显示关键值数组项
你好,
我的问题:
resp, content = httplib2.Http().request("http://api.xxxxx.com/api/" + username)
str_content = content.decode('utf-8')
user = json.loads(str_content)
我返回用户的字符串,并尝试在我的模板中使用它,json看起来是这样的:
{
"XXXXXX": {
"bans": 6,
"ban_info": {
"randomrandomrandom": "randomrandomrandom",
"randomrandom": "randomrandomrandomrandom"
}
}
我该如何遍历这些项目并访问随机信息呢?
比如: user['bans'] 返回 6
但是我怎么才能获取这些随机的东西呢? user['ban_info']['???'] 应该返回
我的英语不是很好,抱歉。 我希望我能把我的问题描述得足够清楚!
感谢大家对此话题的帮助,我也希望这不是重复的问题!
3 个回答
0
在views.py文件中,你应该发送一个包含对象的字典,或者在你的情况下,直接发送用户对象,比如:
HttpResponse(simplejson.dumps(user), mimetype='application/json')
在你的模板中,你可以使用Django的模板标签来访问这个字典,比如:
{{user.bans}}
或者你可以遍历一个子数组,比如:
{% for info in user.ban_info %}
{{ info }}
{% endfor %}
或者
{% for key, value in user.ban_info %}
{{ key }}: {{ value }}
{% endfor %}
2
在这个StackOverflow的链接中,提到一个关于字典的内容。字典是一种数据结构,用来存储键值对。在遍历字典的时候,默认情况下你得到的是字典的键,也就是那些用来查找值的“名字”。
举个例子:
pizza = {"cheese": "mozarella",
"topping": "pepperoni"}
for key in pizza:
print pizza[key]
# outputs: mozarella
# pepperoni
在你的例子中,你可以简单地这样做:
for key in user['ban_info']:
print user['ban_info'][key]
1
那我们来看看for循环吧?
for x in user['ban_info']:
print x
关于键和值的内容:
for (k, v) in user['ban_info'].iteritems():
print k
print v