解码&在Python中编码url params(不是查询字符串)

时间:2017-03-28 20:11:06

标签: python url

Python似乎没有这样做的功能 - 或者现有功能可以做到这一点的文档 - 而且我有点失去了通过RFC进行梳理。

我有一个我用urlparse解析的网址:

url = "https://example.com/path/to;jsessionid=foo?foo=bar&biz=bang"

它既有“params”又有“查询字符串”

我需要解码/重新编码params(jsessionid = foo)

为了解码,我尝试了urlparse.parse_qs,它运行正常。查看代码,似乎在嵌套列表解析中使用;作为主分隔符:

def parse_qsl(qs
    ...
    pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')]

在重建参数方面,似乎我需要重新实施urllib.urlencode,只需将分隔符从&更改为;

这对我来说似乎有点奇怪,我觉得我必须遗漏一些明显的东西。

编辑:在思考之后,我可能只是做params = params.replace("&", ";")因为密钥/值有效负载不应受到影响,因为RFC保留了两个字符。

0 个答案:

没有答案