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

手动插入JSON可正常调用Google Maps API,Python传入同JSON报错INVALID_REQUEST

解决Google Maps API地理编码INVALID_REQUEST问题(模板传JSON场景)

先排查渲染后的实际JSON格式

  • 打开浏览器开发者工具(F12),切换到Elements标签,找到包含location_json的脚本代码块,对比渲染后的JSON和你手动写的版本:
    • 检查是否存在多余的转义字符(比如\"被转成了\\\")
    • 确认数组、对象的括号是否完全配对,有没有遗漏逗号
    • 确保所有地址字符串都用双引号包裹(Google Maps API要求地址必须是标准JSON字符串格式)

调整模板渲染逻辑

  • 若使用Jinja2模板,先尝试去掉|safe过滤器,只保留{{ location_json|tojson }},因为safe可能跳过必要转义,破坏JSON结构
  • 如果tojson过滤器仍有问题,直接在Python后端完成JSON序列化,再传入模板:
    import json
    # 假设location是你的地点数据列表
    location_json = json.dumps(location, ensure_ascii=False)
    # 直接传递序列化后的字符串到模板
    return render_template('map_page.html', location_json=location_json)
    
    模板中直接使用:
    <script>
      const locations = {{ location_json|safe }};
      // 后续调用Google Maps API的逻辑
    </script>
    

验证地址格式合规性

  • 检查地址是否包含特殊字符(如&、#),确保这些字符被JSON正确转义
  • 地址尽量完整(包含城市、国家等信息),减少模糊匹配引发的API报错

按顺序展示地点与路线规划要点

  • 遍历渲染后的locations数组,依次调用地理编码接口,注意控制请求频率(避免触发API限流)
  • 路线规划时,将地理编码得到的经纬度按数组顺序作为途经点,通过Directions API的waypoints参数传递

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:52:15