Python将SQL结果转换为树形层次结构

0 投票
1 回答
793 浏览
提问于 2025-04-16 09:47

我有一个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)

可能还有更简单明了的方法可以实现这个功能。

撰写回答