当前位置: 首页 > 面试题库 >

在urllib2中使用Python的Google Maps地理编码器

黄隐水
2023-03-14
问题内容

我正在尝试将Google Maps地理编码器与Python和JSON结合使用,但一直被告知我有一个错误的请求:

add = "Buckingham Palace, London, SW1A 1AA"
geocode_url = "https://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false&region=uk" % add
print geocode_url
req = urllib2.urlopen(geocode_url)
jsonResponse = json.loads(f.read())
pprint.pprint(nest)

失败urllib2.HTTPError: HTTP Error 400: Bad Request

但是如果我只是复制粘贴

https://maps.googleapis.com/maps/api/geocode/json?address=Buckingham%20Palace,%20London,%20SW1A%201AA&sensor=false&region=uk

放入浏览器栏中,效果很好。

我的要求出了什么问题?


问题答案:

您需要一些URL引用编码,这可以工作:

import urllib2
import pprint
import json
add = "Buckingham Palace, London, SW1A 1AA"
add = urllib2.quote(add)
geocode_url = "http://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false&region=uk" % add
print geocode_url
req = urllib2.urlopen(geocode_url)
jsonResponse = json.loads(req.read())
pprint.pprint(jsonResponse)

加法= urllib2.quote(ADD) 是重要的一点。如果您使用的是非拉丁字符,则建议Google API需要UTF-8编码。



 类似资料:
  • 问题内容: 我打开网址: 我想做的就是以相同的方式连接到我在某处告诉我的代理: 但这也不起作用。 我知道urllib2具有类似代理处理程序的功能,但是我无法回忆起该功能。 问题答案:

  • 功能介绍 地理编码(Geocoding)也称地址匹配,是指将地址映射成地理坐标的过程,提供了一种把描述成文本地址的地理位置信息转换成地理坐标的方式。 地理编码服务实现了将地址或地名描述转换为对应的地理坐标和结构化地址描述的功能。通过address参数传入具体地址信息,通过city参数传递具体访问地址的区域,即可以得到该地址的坐标信息。SuperMap Online的地理编码服务在地址匹配过程中采用

  • 地理编码服务可以根据用户输入的地址描述和城市范围返回对应的地理坐标和结构化的地址详细描述。 使用服务前需要先申请 key。 资源服务地址:https://www.supermapol.com/iserver/services/location-china/rest/locationanalyst/China/geocoding 资源接口参数说明 地理编码服务支持GET和HEAD请求,支持json\

  • 问题内容: 调用指向从RSS源中获取的文章的链接会导致以下错误: urllib2.HTTPError:HTTP错误301:HTTP服务器返回了重定向错误,这将导致无限循环。最后30x错误消息是:永久移动 根据文档,urllib2支持重定向。 在Java上,只需调用即可解决问题 如何使用Python解决? 更新 我遇到的链接有问题: http://feeds.nytimes.com/click.ph

  • 问题内容: 我正在urllib2的urlopen中使用timeout参数。 我如何告诉Python,如果超时到期,应该引发自定义错误? 有任何想法吗? 问题答案: 在极少数情况下要使用。这样做会捕获可能很难调试的 任何 异常,并且会捕获包括和在内的异常,这些异常会使您的程序恼人。 最简单的说,您会发现: 以下内容应捕获连接超时时引发的特定错误:

  • 我试图在HMS(Huawei Mobile Services)设备上使用对lat/long坐标进行地理编码,但结果总是得到一个空列表。 为了验证这实际上应该起作用,我检查了,它返回。 如何在HMS设备上使用对lat/long进行地理编码?哪些配置/设置是必要的,以避免达到这个限制? 我已经看到了使用位置/站点工具包的解决方案,但如果可能的话,我更喜欢使用“普通”的Android API。