我有一个以元组为键的字典。例如:{('tags','1'):'name',('name','first'):'rik',('name','last'):'atee'}
例如,在 django 中,如何打印 ('name','first') 处的值?我可以用 dict.items.1 或 dict.items.2 来做到这一点——但是订购就成了一个问题。
Django 模板语言有意限制它允许您引用的内容。
例如,您必须使用点运算符来访问属性和字典元素,这意味着您引用的键必须是字符串。
来自文档:
变量名称必须由任意字母 (AZ)、任意数字 (0-9)、下划线(但不得以下划线开头)或点组成。
https://docs.djangoproject.com/en/dev/ref/templates/api/#variables-and-lookups
您的选择是(a)使用您的视图将元组键转换为字符串格式,或者(b)您可以使用不同的模板引擎,它允许您使用任意键进行引用。
选项 (b) 实际上并不像听起来那么糟糕,因为它们是 Django 的模板语言,它们被设计为 Django 模板语言的超集,因此(理论上)您所有的旧模板都可以工作,并且您可以获得更多功能。我建议您查看Jinja 模板语言,它具有您正在寻找的功能。
字典中的任何值都可以通过它们对应的键来访问
所以...
>>> foo = {('tags','1'): 'name', ('name','first'):'rik', ('name','last'):'atee'}
>>> foo[('name','first')]
'rik'
但是元组作为键可能最终会变得混乱和容易出错,为什么不使用类似的东西{"tags": ['name'], "first":'rik', "last":'atee'}
呢?