2

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

例如,在 django 中,如何打印 ('name','first') 处的值?我可以用 dict.items.1 或 dict.items.2 来做到这一点——但是订购就成了一个问题。

4

2 回答 2

2

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

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

来自文档:

变量名称必须由任意字母 (AZ)、任意数字 (0-9)、下划线(但不得以下划线开头)或点组成。

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

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

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

于 2012-06-16T01:00:25.760 回答
1

字典中的任何值都可以通过它们对应的键来访问

所以...

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

但是元组作为键可能最终会变得混乱和容易出错,为什么不使用类似的东西{"tags": ['name'], "first":'rik', "last":'atee'}呢?

于 2012-06-15T23:45:00.450 回答