我对Python比较陌生。尝试在Python中编写一个函数,使用Google Distance Matrix API计算位置之间的距离。我实际上在过去已成功使用此代码,但现在我收到以下错误,无法弄清楚发生了什么。
IOError:[Errno套接字错误] [SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:590)
我知道问题不在于网址,因为我可以在浏览器中输入,使用我的API密钥,它会为我提供我正在寻找的结果(即Google Maps Distance Matrix API的距离信息) 。这似乎与urllib.urlopen函数调用有关。我假设我以某种方式错误地调用它,但我无法弄清楚如何。有什么想法吗?
我使用的是Python 2.7.10版。
import urllib
import re
def getMiles(origin,destination):
#APIkey = "someAPIkey" #Update to prompt user for API key
query = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=" + origin + "&destinations=" + destination + "&key=" + APIkey
test = 0
fhand = urllib.urlopen(query) #CODE ERRORS OUT HERE
#Error handling to ensure query works
try:
for line in fhand:
line = str(line.strip())
#print line
if test == 1:
line = line.replace('"text" : "',"")
line = line.replace('",',"")
result = [origin,'"'+destination+'"'] + line.split()
break
if line.startswith('"distance"'):
test = 1
return result
except:
result = [origin,'"'+destination+'"',"ERROR","Query could not be opened"]
return result
答案 0 :(得分:0)
这是对我有用的解决方案,在您的程序中添加以下代码,它可以修复您的错误,配合。
import ssl
ssl._create_default_https_context = ssl._create_unverified_context