我正在使用simplejson
在Django中加载JSON字符串,因此:
obj = json.loads('{"name": "joe"}')
person = obj.name
这会引发错误:
'dict' object has no attribute 'name'
但是当我将obj
向下传递到视图模板并通过{{ obj.name }}
将其打印出来时,它就可以了!为什么呢?
答案 0 :(得分:7)
我不确定它的Django方面是如何工作的,但是从json.loads
得到的对象是Python dict
对象。这意味着它没有其键的属性,但您可以像访问任何其他词典一样访问它们:
obj = json.loads('{"name": "joe"}')
person = obj['name']
答案 1 :(得分:4)
json.loads
将json加载到python字典中。因此,您必须像字典一样访问它,即data['key']
。
现在,在django模板方面,查看官方django templates文档。
直接引用:
从技术上讲,当模板系统遇到一个点时,它会按以下顺序尝试以下查找:
- 字典查找
- 属性查找
- 方法调用
- 列表索引查找
基本上,django模板允许您使用data.key
语法访问字典项。