Python使用quote、unquote、urlencode、urldecode对url编码解码

1、对单个字符串编码

from urllib.parse import quote, unquote

# 编码
print(quote("美国"))
# %E7%BE%8E%E5%9B%BD

# 解码
print(unquote("%E7%BE%8E%E5%9B%BD"))
# 美国

2、对key-value字典数据编码

from urllib.parse import unquote, urlencode

data = {
    "name": "Tom",
    "country": "美国",
    "age": 23
}

# 编码
print(urlencode(data))
# name=Tom&country=%E7%BE%8E%E5%9B%BD&age=23

# 解码
print(unquote("name=Tom&country=%E7%BE%8E%E5%9B%BD&age=23"))
# name=Tom&country=美国&age=23

3、自定义实现url解码
tip: urllib库没有提供 urldecode 函数

# 将查询字符串转为dict字典数据类型
def urldecode(query):
    item = {}
    for key_value in unquote(query).split("&"):
        key, value = key_value.split("=")
        item[key] = value

    return item


print(urldecode("name=Tom&country=%E7%BE%8E%E5%9B%BD&age=23"))
# {'name': 'Tom', 'country': '美国', 'age': '23'}

参考
python中的urlencode与urldecode

Python中进行URL解码操作可以使用urllib.parse库中的unquote函数。以下是一个示例代码: ``` import urllib.parse def urldecode(url): decoded_url = urllib.parse.unquote(url) return decoded_url # 示例用法 encoded_url = "http%3A%2F%2Fwww.baidu.com" decoded_url = urldecode(encoded_url) print(decoded_url) ``` 在这个示例中,我们导入了urllib.parse库,并定义了一个名为urldecode的函数。该函数接受一个经过URL编码的字符串作为参数,并使用urllib.parse.unquote函数对其进行解码。最后,我们使用示例值进行测试,并打印解码后的URL。 所以,要在Python中进行URL解码操作,你可以使用urllib.parse.unquote函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python 中的 urlencode 编码urldecode 解码](https://blog.csdn.net/csdnzouqi/article/details/123394132)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python常用函数(urlencodeurldecode)](https://blog.csdn.net/m0_59485658/article/details/128265688)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值