Python Django:如何将平面查询集处理为嵌套字典?
我有一个表,其中的数据如下所示:Python Django:如何将平面查询集处理为嵌套字典?,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我有一个表,其中的数据如下所示: |Country|State|City |Street| |-------|-----|-----|------| | USA | AZ |city1| str1 | | USA | AZ |city1| str2 | | USA | AZ |city2| str1 | | USA | AZ |city2| str3 | | USA | MN |city3| str4 | | MEX | CH |city4| str5 | |
|Country|State|City |Street|
|-------|-----|-----|------|
| USA | AZ |city1| str1 |
| USA | AZ |city1| str2 |
| USA | AZ |city2| str1 |
| USA | AZ |city2| str3 |
| USA | MN |city3| str4 |
| MEX | CH |city4| str5 |
| MEX | CH |city4| str6 |
nested_dict = {
'USA':{
'AZ':{
'city1':['str1','str2'],
'city2':['str1','str3'],
},
'MN':{
'city3':['str3','str4'],
},
},
'MEX':{
'CH':{
'city4':['str5','str6'],
},
},
}
将其转换为嵌套字典的正确方法是什么?
我预计结果如下:
|Country|State|City |Street|
|-------|-----|-----|------|
| USA | AZ |city1| str1 |
| USA | AZ |city1| str2 |
| USA | AZ |city2| str1 |
| USA | AZ |city2| str3 |
| USA | MN |city3| str4 |
| MEX | CH |city4| str5 |
| MEX | CH |city4| str6 |
nested_dict = {
'USA':{
'AZ':{
'city1':['str1','str2'],
'city2':['str1','str3'],
},
'MN':{
'city3':['str3','str4'],
},
},
'MEX':{
'CH':{
'city4':['str5','str6'],
},
},
}
您可以使用嵌套的:
通过使用诸如
itertools.groupby
之类的工具。SQL数据库对于“分层数据”不是很好。这应该是list
而不是lambda:list
?现在,您将获得对列表
类的引用。@schwobasegll然后如何在模板中迭代这个嵌套的dict
。我遵循了这个@ArtyomIlyin,你是说在某个前端框架中有json转储还是在django模板中?@schwobaseggl,我是说在django模板中。我试图在上下文中传递nested_dict
,以便在django.views
中呈现模板。