django打印元组键字词典

时间:2012-06-15 23:23:48

标签: python django

我有一个以元组为键的字典。例如:{('tags','1'):'name',('name','first'):'rik',('name','last'):'atee'}

在django中,我如何打印('name','first')的值,例如?我可以用dict.items.1或dict.items.2来做 - 但是排序成了一个问题。

2 个答案:

答案 0 :(得分:2)

Django模板语言在允许您引用的内容中有意限制。

例如,你必须使用点运算符来访问属性和字典元素,这意味着你引用的键必须是字符串。

来自docs:

  

变量名必须包含任何字母(A-Z),任何数字(0-9),下划线(但不能以下划线开头)或点。

https://docs.djangoproject.com/en/dev/ref/templates/api/#variables-and-lookups

您可以选择(a)使用您的视图将元组键转换为字符串格式,或者(b)您可以使用不同的模板引擎,允许您使用任意键进行引用。

选项(b)实际上并不像听起来那样糟糕,因为它们是Django的模板语言,它被设计为Django的模板语言的超集,所以(理论上)所有旧模板都可以工作,你只需要获得更多功能。我建议您查看Jinja templating language,它具有您正在寻找的功能。

答案 1 :(得分:1)

字典中的任何值都可以通过相应的键访问

因此...

>>> foo = {('tags','1'): 'name', ('name','first'):'rik', ('name','last'):'atee'}
>>> foo[('name','first')]
'rik'

然而,元组作为键可能最终会让人感到困惑和容易出错,为什么不使用像{"tags": ['name'], "first":'rik', "last":'atee'}这样的东西?