[英]Django : Unable to access values from a dictionary nested inside another dictionary
我有以下形式的字典項目
data = {0:'Karthik',
1:{'semester':1,'marks':100,'result':'pass','html':'HTML DATA HERE'},
2:{'semester':2,'marks':98,'result':'pass','html':'HTML DATA HERE'},
3:{'semester':3,'marks':99,'result':'pass','html':'HTML DATA HERE'}}
我將上述數據傳遞給模板,如下所示:
def showAvailableNonCBCSResults(request,usn):
data = {0:'Karthik',
1:{'semester':8,'marks':100,'result':'pass','html':'HTML DATA HERE'},
2:{'semester':8,'marks':100,'result':'pass','html':'HTML DATA HERE'},
3:{'semester':8,'marks':100,'result':'pass','html':'HTML DATA HERE'}}
return render(request,'result/showresult.html',{'data':data,'dictentries':range(0,len(data))})
模板代碼如下:
{% for i in dictentries %}
<table class="table table-responsive table-striped table-hover pt-3" style="margin:auto;">
{{ data.i.html }}
</table>
{% endfor %}
字典的html字段中的數據未打印。 如果我使用data.1.html
或data.2.html
,它工作正常,我可以看到html數據。 但是,在for循環內使用data.i.html
不會打印任何內容。
我要去哪里錯了?
編輯1:我在第0個索引處制作了第一個字典,其格式與其他條目相同。 模板輸出仍然沒有變化。
data = {1:{'semester':0,'marks':100,'result':'pass','html':'HTML DATA HERE'},
1:{'semester':1,'marks':100,'result':'pass','html':'HTML DATA HERE'},
2:{'semester':2,'marks':98,'result':'pass','html':'HTML DATA HERE'},
3:{'semester':3,'marks':99,'result':'pass','html':'HTML DATA HERE'}}
嘗試迭代字典時遇到錯誤,您的第一個條目不是嵌套字典,因此當您嘗試迭代時就好像遇到了錯誤:
~ λ python3
Python 3.7.0 (default, Jun 29 2018, 20:13:13)
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> testDict = {0:"Name",1:{"nested":"dict1"},2:{"nested2":"dict"}}
>>> for k,v in testDict.items():
... print(k,v)
...
0 Name
1 {'nested': 'dict1'}
2 {'nested2': 'dict'}
>>> for k,v in testDict.items():
... for k2,v2 in v.items():
... print(k2,v2)
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
AttributeError: 'str' object has no attribute 'items'
這基本上是說您正在嘗試將字符串視為字典,這自然是行不通的。 您可能會擺脫改變
'dictentries':range(0,len(data))
至
'dictentries':range(1,len(data))
從那時起,它將不再嘗試將第一個字典條目值視為字典。
固定
我如下更改模板中的for循環:
{% for k,v in data.items %}
<table class="table table-responsive table-striped table-hover pt-3" style="margin:auto;">
{{ v.html }}
</table>
{% endfor %}
現在,我可以輕松訪問嵌套字典的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.