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

时间:2014-05-09 20:52:27

标签: python arrays django random

您好, 我相对较新的Python& 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 :(得分:1)

for循环怎么样?

for x in user['ban_info']:
    print x

对于键和值:

for (k, v) in user['ban_info'].iteritems():
    print k
    print v

答案 1 :(得分:1)

Iterating over a dict returns its keys,例如:

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]

答案 2 :(得分:0)

从views.py中你应该发送一个带有对象字典的响应,或者在你的情况下发送用户对象本身,如:

HttpResponse(simplejson.dumps(user), mimetype='application/json')

在模板中,您可以使用Django模板标签访问该dict,例如:

{{user.bans}}

或迭代子数组,如:

{% for info in user.ban_info %}
    {{ info }}
{% endfor %}

{% for key, value in user.ban_info %}
    {{ key }}: {{ value }}
{% endfor %}