Python3 url解码与参数解析
短信预约 -IT技能 免费直播动态提醒
在获取zk节点时,有些子节点名字直接就是编码后的url,就像下面这行一样:
url='dubbo%3A%2F%2F10.4.5.3%3A20880%2Fcom.welab.authority.service.AuthorityService%3Fanyhost%3Dtrue%26application%3Dwelab-authority%26dubbo%3D2.5.7'
先需要把这个url里进行解码, 转成如下这种:
dubbo://10.4.5.3:20880/com.welab.authority.service.AuthorityService?anyhost=true&application=welab-authority&dubbo=2.5.7
然后有用的参数: url中的ip地址, 参数中application对应的值
Python2解码与提取参数
>>> import urlparse
>>> urldata = urlparse.unquote(url)
>>> print urldata
dubbo://10.4.5.3:20880/com.welab.authority.service.AuthorityService?anyhost=true&application=welab-authority&dubbo=2.5.7
#转成一个格式化对象
>>> result = urlparse.urlparse(urldata)
>>> print result
ParseResult(scheme='dubbo', netloc='10.4.5.3:20880', path='/com.welab.authority.service.AuthorityService', params='', query='anyhost=true&application=welab-authority&dubbo=2.5.7', fragment='')
#提取url中的参数,即url中?后的内容
>>> args = urlparse.parse_qs(result.query)
>>> print args
{'application': ['welab-authority'], 'anyhost': ['true'], 'dubbo': ['2.5.7']}
#获取我想要的信息
>>> ip= result.netloc
>>> application = args.get('application',[])
>>> print ip
10.4.5.3:20880
>>> print application
['welab-authority']
Python3 解码与提取参数
上面的测试中详细打印了输出信息, 这次就直接写在py脚本里了。
from urllib import parse
#url解码
urldata = parse.unquote(urldata)
#url结果
result = parse.urlparse(urldata)
#url里的查询参数
query_dict = parse.parse_qs(result.query)
#获取我需要的信息
ip = result.netloc
application = query_dict.get('application',[])
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341