我能够使用urlsplit解析url并使用query参数获取参数。

url'/api/v1/test?par1=val1&par2=val2a%3D1%26val2b%3Dfoo%26val2c%3Dbar'

使用urlsplit和查询后,我得到

'par1=val1&par2=val2a%3D1%26val2b%3Dfoo%26val2c%3Dbar'

在上面运行parse_qs之后,我得到

{'par2': ['val2a=1&val2b=foo&val2c=bar'], 'par1': ['val1']}

这是我所需要的输出

'par1': ['val1']

我得到返回作为参数之一的列表的解码数据如下

'par2': ['val2a=1&val2b=foo&val2c=bar]

我可以在par2split处使用&方法拆分=并获取val2a ...

但是,有什么更好的方法吗?

最佳答案

您可以在parse_qs的值上再次使用par2

>>> url = '/api/v1/test?par1=val1&par2=val2a%3D1%26val2b%3Dfoo%26val2c%3Dbar'
>>> q = parse_qs(urlparse(url).query)
>>> q
{'par2': ['val2a=1&val2b=foo&val2c=bar'], 'par1': ['val1']}
>>> parse_qs(q['par2'][0])
{'val2b': ['foo'], 'val2c': ['bar'], 'val2a': ['1']}


在最后一个结果之后,您可以获取val2a等的值。

关于python - 从python中的urlparse返回的拆分列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36944544/

10-12 06:31