Python正在将requests.get参数转换为%2C和'|';至%7C
我正在使用Google距离矩阵API,使用Python正在将requests.get参数转换为%2C和'|';至%7C,python,python-3.x,python-requests,Python,Python 3.x,Python Requests,我正在使用Google距离矩阵API,使用python构建距离矩阵。 使用lat long时,和|符号在URL中编码,导致请求无效 这是我的密码: import requests url = 'https://maps.googleapis.com/maps/api/distancematrix/json' params = { 'origins' : '12.9571,77.659439|12.9353173134382,77.7402628734708', 'key' : 'XX
python
构建距离矩阵。
使用lat long时,
和|
符号在URL中编码,导致请求无效
这是我的密码:
import requests
url = 'https://maps.googleapis.com/maps/api/distancematrix/json'
params = {
'origins' : '12.9571,77.659439|12.9353173134382,77.7402628734708',
'key' : 'XXXXX' # key hidden for security reasons
}
response = requests.get(url=url, params=params)
这将返回一个错误的请求
当我尝试打印请求的URL时
response.url
输出为
https://maps.googleapis.com/maps/api/distancematrix/json?origins=12.9571%2C77.659439%7C12.9353173134382%2C77.7402628734708&key=XXXX
我们可以看到,
|
和,
正在转换为%2C
和%7C
,这使得URL无效。如何解决这个问题?如果要使用get
,只需将参数格式化为字符串?key=val&…
,并附加到基本URL:
导入请求
基本url=https://maps.googleapis.com/maps/api/distancematrix/json'
参数={
“键”:“XXXXX”,
‘来源’:‘12.9571,77.659439 | 12.9353173134382,77.7402628734708’,
}
格式化的_url=base_url+'?'+'&'.join([“{}={}.params.items()]中k,v的格式(k,v))#!
打印(格式化的url)
response=requests.get(格式化的url)
...
输出:
https://maps.googleapis.com/maps/api/distancematrix/json?key=XXXXX&origins=12.9571,77.659439|12.9353173134382,77.7402628734708
我知道(#!
)看起来有点难看,但这似乎是使用查询字符串的GET
请求的唯一解决方案