Python如何从列表内嵌套的字典中提取指定的'name'字段值
报错原因
rg.search() 方法的返回结果是外层为列表、内层为字典的嵌套结构,你代码中的address变量本质是列表,无法直接使用字符串键提取值,这是触发类型错误的核心原因。
正确写法
你只需要先通过索引0取出列表内的字典元素,再提取name键对应的值即可,修正后的代码如下:
for index, row in df_dummies[mask_nulls].iterrows(): a = (row['lat'], row['lon']) address = rg.search(a) suburb = address[0]['name'] barrios.append(address)
可选容错处理
如果存在坐标无效导致返回空列表的场景,可以加一层非空判断避免索引越界报错:
for index, row in df_dummies[mask_nulls].iterrows(): a = (row['lat'], row['lon']) address = rg.search(a) # 先判断返回列表非空再取值 if address: suburb = address[0]['name'] barrios.append(address)
内容的提问来源于stack exchange,提问作者Hernan N
相关产品推荐
相关产品推荐

