Python正在将requests.get参数转换为%2C和'|';至%7C

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

我正在使用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' : '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
请求的唯一解决方案