我已经决定在这样的URL上添加一个Querystring
import urllib
import urllib.parse
from urllib.parse import urlencode
url = "https://datausa.io/api/data?Geography=04000US06&drilldowns=Race,Ethnicity&measures=Hispanic%20Population,Hispanic%20Population%20Moe"
parts = urllib.parse.urlparse(url)
query_dict = urllib.parse.parse_qs(parts.query)
query_dict['Geography'] = '04000US24'
new_parts = list(parts)
new_parts[4] = urlencode(query_dict)
print(urllib.parse.urlunparse(new_parts))
,我得到了此结果
https://datausa.io/api/api/api/api/data? 2cachnicity%27%5D&测量值=%5B%27Hispanic+人口%2Chispanic+人口+MOE%27%5D
,因此此URL不再起作用。因此,我使用了Unquote,
from urllib.parse import unquote
url = unquote('https://datausa.io/api/data?Geography=04000US24&drilldowns=%5B%27Race%2CEthnicity%27%5D&measures=%5B%27Hispanic+Population%2CHispanic+Population+Moe%27%5D')
print(url)
但是这样做了,
https://datausa.io/api/data?Geography=04000US24&drilldowns=['Race,Ethnicity']&measures=['Hispanic+Population,Hispanic+Population+Moe']
并且此URL也行不通。
我如何删除方括号回到原始URL
?
谢谢
i've decided to add a querystring on URL like this
import urllib
import urllib.parse
from urllib.parse import urlencode
url = "https://datausa.io/api/data?Geography=04000US06&drilldowns=Race,Ethnicity&measures=Hispanic%20Population,Hispanic%20Population%20Moe"
parts = urllib.parse.urlparse(url)
query_dict = urllib.parse.parse_qs(parts.query)
query_dict['Geography'] = '04000US24'
new_parts = list(parts)
new_parts[4] = urlencode(query_dict)
print(urllib.parse.urlunparse(new_parts))
and i got this result
https://datausa.io/api/data?Geography=04000US24&drilldowns=%5B%27Race%2CEthnicity%27%5D&measures=%5B%27Hispanic+Population%2CHispanic+Population+Moe%27%5D
and so this url didn't work anymore. So i used unquote, like this
from urllib.parse import unquote
url = unquote('https://datausa.io/api/data?Geography=04000US24&drilldowns=%5B%27Race%2CEthnicity%27%5D&measures=%5B%27Hispanic+Population%2CHispanic+Population+Moe%27%5D')
print(url)
but got this
https://datausa.io/api/data?Geography=04000US24&drilldowns=['Race,Ethnicity']&measures=['Hispanic+Population,Hispanic+Population+Moe']
and this url doesn't work too.
How can i remove square brackets an come back to original url
https://datausa.io/api/data?Geography=04000US24&drilldowns=Race,Ethnicity&measures=Hispanic%20Population,Hispanic%20Population%20Moe ?
Thanks
发布评论
评论(1)
使用
Doseq
参数。See the docs on
urllib.parse.urlencode
有关参数的更多信息Use the
doseq
parameter.See the docs on
urllib.parse.urlencode
for more information on the parameter