我能够使用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]
我可以在par2
和split
处使用&
方法拆分=
并获取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/