Python 计算距离矩阵时的误差
我在下面的帖子中计算距离矩阵 这就是代码片段Python 计算距离矩阵时的误差,python,urllib3,google-distancematrix-api,Python,Urllib3,Google Distancematrix Api,我在下面的帖子中计算距离矩阵 这就是代码片段 import urllib.request from urllib.parse import quote import urllib.parse import simplejson, urllib import urllib.request orig_coord = 19.12,19.45 dest_coord = 19.10,19.50 url = 'http://maps.googleapis.com/maps/api/distancemat
import urllib.request
from urllib.parse import quote
import urllib.parse
import simplejson, urllib
import urllib.request
orig_coord = 19.12,19.45
dest_coord = 19.10,19.50
url = 'http://maps.googleapis.com/maps/api/distancematrix/json?origins=' + urllib.quote_plus(orig_coord)+ '&destinations=' + urllib.quote_plus(dest_coord) + '&mode=driving&language=en-EN&sensor=false'
#url = "http://maps.googleapis.com/maps/api/distancematrix/json?origins={0}&destinations={1}&mode=driving&language=en-EN&sensor=false".format(str(orig_coord),str(dest_coord))
#result= simplejson.load(urllib.urlopen(url))
result=urllib.request.urlopen(url)
driving_time = result['rows'][0]['elements'][0]['duration']['value']
我试过这两种方法(另一种有评论)
但它从来都不起作用,
现在有了这些代码,我得到了错误
runfile('C:/Users/admin/.spyder-py3/temp.py', wdir='C:/Users/admin/.spyder-py3')
Traceback (most recent call last):
File "<ipython-input-22-30ed5be6f1c7>", line 1, in <module>
runfile('C:/Users/admin/.spyder-py3/temp.py', wdir='C:/Users/admin/.spyder-py3')
File "C:\Users\admin\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)
File "C:\Users\admin\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/admin/.spyder-py3/temp.py", line 16, in <module>
url = 'http://maps.googleapis.com/maps/api/distancematrix/json?origins=' + urllib.quote_plus(orig_coord)+ '&destinations=' + urllib.quote_plus(dest_coord) + '&mode=driving&language=en-EN&sensor=false'
AttributeError: module 'urllib' has no attribute 'quote_plus'
runfile('C:/Users/admin/.spyder-py3/temp.py',wdir='C:/Users/admin/.spyder-py3')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
运行文件('C:/Users/admin/.spyder-py3/temp.py',wdir='C:/Users/admin/.spyder-py3')
文件“C:\Users\admin\Anaconda3\lib\site packages\spyder\utils\site\sitecustomize.py”,第866行,在runfile中
execfile(文件名、命名空间)
文件“C:\Users\admin\Anaconda3\lib\site packages\spyder\utils\site\sitecustomize.py”,第102行,在execfile中
exec(编译(f.read(),文件名,'exec'),命名空间)
文件“C:/Users/admin/.spyder-py3/temp.py”,第16行,在
url='1〕http://maps.googleapis.com/maps/api/distancematrix/json?origins=“+urllib.quote_plus(orig_coord)+”和destinations='+urllib.quote_plus(dest_coord)+'&mode=driving&language=en&sensor=false”
AttributeError:模块“urllib”没有属性“quote\u plus”
urlib的状态
请注意,urllib模块已拆分为多个部分,并在Python 3中重命名为urllib.request、urllib.parse和urllib.error
因此,将urlib
、urlib.parse
等一起导入似乎有些奇怪<代码>quote_plus()
应在中。你试过了吗?我想你必须用urllib.parse.quote\u plus
调用替换urllib.parse.quote\u plus
@Jose使用了urllib.parse.quote\u plus导入quote\u plus中的,但是它给出了错误modulenofounderror:没有名为“urllib.parse.quote\u plus”的模块“urllib.parse”不是来自urllib.parse import quote_plus的包
,“parse import quote_plus”
在python 3.1.6中工作,使用了源代码,并且正在工作。我尝试了来自urllib.parse import quote_plus的,但它给出了错误属性错误:模块“urllib”没有属性“quote_plus”
@Domnick您的评论中有些东西是错误的奇怪。如果quote\u plus
不存在于urlib.parse
中,您应该会收到一条错误消息,如ImportError:cannotimportname quote\u plus
。您的错误消息意味着您仍在尝试调用urllib.quote\u plus()
!您应该从代码中完全删除import-urllib
。