如何从含动态键的assets字典列表中提取href对应的URL值
提取href的Python实现方案
你可以不用关心assets下的动态键名,直接获取字典的values值即可实现提取,以下是可直接运行的代码:
基础实现(适配你的数据结构,每个assets仅1个动态键)
for feature in d["features"]: # 直接取assets下第一个值对象,无需知道键名 asset = next(iter(feature["assets"].values())) print(asset["href"])
兼容多资产的通用实现(如果单个assets下可能有多个动态键)
for feature in d["features"]: # 遍历assets下所有资产对象 for asset in feature["assets"].values(): print(asset["href"])
带容错的稳定版本(避免数据缺失导致报错)
如果你的数据可能存在字段缺失的情况,可以用以下更稳健的写法:
# 遍历features,默认空列表避免d无features键时报错 for feature in d.get("features", []): # 获取assets字典,默认空字典避免feature无assets键时报错 assets = feature.get("assets", {}) for asset in assets.values(): # 取href字段,不存在则为None,判断非空后再打印 href = asset.get("href") if href: print(href)
代码说明
iter(feature["assets"].values())将assets的所有值转为迭代器,next()直接取第一个元素,无需转列表,处理数百条数据效率更高- 全程无需匹配动态生成的资产文件名键名,完全适配你的数据结构
内容的提问来源于stack exchange,提问作者beauvery
相关产品推荐
相关产品推荐

