未引用后如何避免从URL中的方括号

发布于 2025-02-02 16:58:13 字数 1600 浏览 3 评论 0 原文

我已经决定在这样的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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

宛菡 2025-02-09 16:58:13

使用 Doseq 参数。

new_parts[4] = urlencode(query_dict, doseq=True)

See the docs on urllib.parse.urlencode 有关参数的更多信息

Use the doseq parameter.

new_parts[4] = urlencode(query_dict, doseq=True)

See the docs on urllib.parse.urlencode for more information on the parameter

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文