如何通过嵌套字典分层遍历拼接生成符合规则的目标URL
嵌套字典批量生成目标URL的实现方案
原代码的核心问题
- 直接对字典做键值解包遍历没有调用
.items()方法,语法层面就无法正确获取一级键值对 - 没有针对嵌套的二级城市字典做二次遍历,无法拿到每个城市对应的名称和代码参数
可直接运行的实现代码
baseURL = 'https://www.website.com/business/' provinceDictionary = { 'AB': { 'calgary': '91', 'edmonton': '183', 'canmore': '96' }, 'BC': { 'vancouver': '961', 'surrey': '934', 'victoria': '966' } } generated_urls = [] # 第一层遍历:提取省级编码,以及该省下属的城市-城市代码映射表 for province_code, city_map in provinceDictionary.items(): # 第二层遍历:提取当前省下属的城市名称、对应城市代码 for city_name, city_code in city_map.items(): # 严格匹配URL结构拼接地址 full_url = f"{baseURL}{province_code}/{city_name}/{city_code}.html" generated_urls.append(full_url) print(full_url)
实际输出效果
运行代码后会生成符合要求的地址列表:
https://www.website.com/business/AB/calgary/91.html https://www.website.com/business/AB/edmonton/183.html https://www.website.com/business/AB/canmore/96.html https://www.website.com/business/BC/vancouver/961.html https://www.website.com/business/BC/surrey/934.html https://www.website.com/business/BC/victoria/966.html
关键注意事项
- Python中遍历字典获取键值对,必须通过
.items()方法返回的(键, 值)元组结构做解包,直接写for key, value in 字典名会报解包错误 - 两层嵌套结构需要对应两层循环完成遍历,不能跳过二级字典的遍历步骤直接取内嵌参数
- 优先用f-string做字符串插值拼接URL,比逐次拼接字符串的可读性更高,也不容易出现斜杠错位的格式问题
内容的提问来源于stack exchange,提问作者Meowsleydale
相关产品推荐
相关产品推荐

