在Django模板中显示关键值数组项

1 投票
3 回答
1953 浏览
提问于 2025-04-18 06:03

你好,

我的问题:

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

撰写回答