猿问

Django:如何将平面查询集处理为嵌套字典?

我有一个数据表,如下所示:


|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'],

        },

    },

}


慕尼黑5688855
浏览 143回答 1
1回答

尚方宝剑之说

您可以使用嵌套的defaultdict:from collections import defaultdict as ddnested_dict = dd(lambda: dd(lambda: dd(list)))for m in model.objects.all():    nested_dict[m.Country][m.State][m.City].append(m.Street)
随时随地看视频慕课网APP

相关分类

Python
我要回答