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
中呈现模板。