Python url的编码转换

基于python 自带module urllib

from urllib.parse import parse_qs, urlparse, urlencode, unquote, unquote_plus, quote, quote_plus


def parse_url_params(url):
    """将url ?后的参数转成字典"""
    # 提取url参数
    query = urlparse(url).query
    # 将字符串转换为字典
    params = parse_qs(query)
    # 所得的字典的value都是以列表的形式存在,若列表中都只有一个值
    result = {key: params[key][0] for key in params}
    return result


def dict_to_url_params(dct):
    """将字典转成url params格式"""
    return urlencode(dct)


def url_params_encode(value, code_type='plus'):
    """
    将正常url编码 / quote不编码斜杠 /quote_plus编码斜杠
    """
    if code_type == 'plus':
        return quote_plus(value)
    else:
        return quote(value)


def url_params_decode(value, code_type='plus'):
    """
    将url编码转成中文/ unquote不解码加号 /unquote_plus把加号解码为空格
    """
    if code_type == 'plus':
        return unquote_plus(value)
    else:
        return unquote(value)


if __name__ == '__main__':
    a = parse_url_params('https://blog.csdn.net/u011342224/article/details/103138592/?tab=all')
    print(a)  # {'tab': 'all'}

    b = dict_to_url_params({'tab': 'all/+'})
    print(b)  # tab=all%2F%2B

    c = url_params_encode('https://blog.csdn.net/u011342224/article/details/103138592/?tab=all')
    print(c)  # https%3A%2F%2Fblog.csdn.net%2Fu011342224%2Farticle%2Fdetails%2F103138592%2F%3Ftab%3Dall

    d = url_params_decode(c)
    print(d)  #https://blog.csdn.net/u011342224/article/details/103138592/?tab=all

	
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值