繁体   English   中英

Python 百分比仅编码 URL 中的某些字符

[英]Python percent encoding only certain characters in a URL

如果#字符出现在给定的 url 中,我必须对其进行百分比编码。我知道我们可以使用urllib.quote对 URL 进行编码。 它需要一个safe关键字来设置特定字符以确保 URL 安全。我正在寻找类似的东西:

a = 'http://localhost:8001/3.0/lists/list_1.localhost.org/roster/owner#iammdkdkf'
b = urllib.quote(a,unsafe='#')

问候。

怎么样a.replace('#','%23')

您可以分别引用每个必需的字符(包括# )并创建一个字典。 然后循环替换字符:

import urllib.parse
reserved = {i: urllib.parse.quote(i) for i in R'#<>:"|?*'}
str_var = "report#2022-12-06#10:15:44.html"
for char, ch_pc_enc in reserved.items():
    str_var = str_var.replace(char, ch_pc_enc)
print(str_var)  # report%232022-12-06%2310%3A15%3A44.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM