Python将SQL结果转换为树形层次结构
我有一个SQL查询,它会返回每一行的三个层级的数据链(比如:国家、县、城市)。每个国家可能有多个县,而每个县也可能有多个城市。
查询结果如下: "英国" "兰开夏" "伯恩利" "英国" "兰开夏" "布莱克本" "英国" "默西塞德" "利物浦" "英国" "西约克郡" "利兹" "英国" "西约克郡" "约克"
我想知道如何在Python中遍历这个结果集,创建类似于下面的结构:
UK
->Lancashire
->->Burnley
->->Blackburn
->Merseyside
->->Liverpool
->West Yorkshre
->->Leeds
->->York
在PHP中,我会这样做:
while($row = $rec->fetch_object()) {
$var[$row->country]['county'][$row->county]['city'][$row->city] = $row->city;
}
1 个回答
2
这样做不是最好的选择,因为有点难懂。
ccc = defaultdict( lambda: defaultdict( list ) )
for row in cursor.fetchall():
country, county, city = row
ccc[country][county].append(city)
可能还有更简单明了的方法可以实现这个功能。