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保留了两个字符。