You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python 3调用Google Maps API,根据邮政编码提取城市名称

从Google Maps Geocode结果中提取城市名称

嘿,我来帮你搞定这个根据邮编提取城市名的需求!从你给出的geocode_results结构来看,Google已经把地址拆分成了不同层级的组件,我们只需要定位到对应城市的组件就行。

核心思路

Google的地址组件(address_components)里,每个条目都有types字段来标识它的类型。城市对应的类型通常是['locality', 'political']——我们只需要遍历组件,找到符合这个类型的条目,提取它的long_name(全称)或者short_name(简称)就可以了。

具体代码实现

假设你已经通过googlemaps库完成了API调用并拿到了geocode_results,可以用这段代码提取城市名:

# 遍历地理编码结果(通常一个邮编对应一个结果,但也可能有多个)
for result in geocode_results:
    # 遍历每个地址组件
    for component in result['address_components']:
        # 检查组件类型是否匹配城市(locality代表城市级别的行政区)
        if 'locality' in component['types'] and 'political' in component['types']:
            city_long_name = component['long_name']
            city_short_name = component['short_name']
            print(f"城市全称:{city_long_name}")
            print(f"城市简称:{city_short_name}")
            # 找到目标后跳出内层循环,不用继续遍历其他组件
            break
    else:
        # 如果内层循环没找到匹配的组件,执行这里
        print("未找到对应邮编的城市信息")

额外提示

  • 如果你需要更精准的结果,在调用Geocode API时可以添加region参数(比如针对美国邮编设置region='us'),这样Google会优先返回该地区的结果,避免跨地区的歧义。
  • 少数情况下一个邮编可能对应多个行政区,这时候你可能需要根据业务需求筛选结果(比如取第一个结果,或者结合其他字段判断)。
  • 记得关注Google Maps API的配额限制,批量处理时别超出调用次数哦~

内容的提问来源于stack exchange,提问作者Tommy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:28:46