前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3 url解码与参数解析

Python3 url解码与参数解析

作者头像
py3study
发布2020-01-06 11:57:12
1.4K0
发布2020-01-06 11:57:12
举报
文章被收录于专栏:python3python3

在获取zk节点时,有些子节点名字直接就是编码后的url,就像下面这行一样:

代码语言:javascript
复制
url='dubbo%3A%2F%2F10.4.5.3%3A20880%2Fcom.welab.authority.service.AuthorityService%3Fanyhost%3Dtrue%26application%3Dwelab-authority%26dubbo%3D2.5.7'

先需要把这个url里进行解码, 转成如下这种:

代码语言:javascript
复制
dubbo://10.4.5.3:20880/com.welab.authority.service.AuthorityService?anyhost=true&application=welab-authority&dubbo=2.5.7

然后有用的参数: url中的ip地址, 参数中application对应的值

Python2解码与提取参数

代码语言:javascript
复制
>>> 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脚本里了。

代码语言:javascript
复制
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',[])
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python2解码与提取参数
  • Python3 解码与提取参数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档