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

编写手机号追踪代码时触发KeyError: 'long'错误求助

错误原因

OpenCage Geocoding API返回的地理数据中,经度字段的键是lng而非long,你代码里使用了错误的键名,因此触发KeyError。

你可以查看之前print(results)的输出,会发现geometry对象的结构类似这样:

[
  {
    "geometry": {
      "lat": 40.712776,
      "lng": -74.005974
    },
    # 其他返回字段...
  }
]
解决方法

直接将代码中的long替换为lng即可:

lat = results[0]["geometry"]["lat"]
# 修正键名为lng
long = results[0]["geometry"]["lng"]
额外注意事项
  • 先校验results是否为空:如果输入的location无效,geocoder.geocode(query)可能返回空列表,直接取results[0]会触发IndexError,建议增加判断逻辑:
    results = geocoder.geocode(query)
    if not results:
        print("无法获取该位置的地理数据")
        exit()
    # 再获取经纬度
    lat = results[0]["geometry"]["lat"]
    lng = results[0]["geometry"]["lng"]
    
  • 确认API返回字段时,可参考OpenCage的官方返回结构定义,避免类似键名误用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:44:58