我有一个SQL查询,每行返回3个数据链级别(即国家,县,市)。每个国家可能有1个以上的县,每个县可能有1个以上的城市。
结果集: “英国”“兰开夏郡”“伯恩利” “英国”“兰开夏郡”“布莱克本” “英国”“默西塞德郡”“利物浦” “英国”“西约克郡”“利兹” “英国”“西约克郡”“约克”
我如何在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;
}
答案 0 :(得分:2)
这不太理想,因为它有点模糊。
ccc = defaultdict( lambda: defaultdict( list ) )
for row in cursor.fetchall():
country, county, city = row
ccc[country][county].append(city)
可能有更简洁的方法来做到这一点。