博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3 url解码与参数解析
阅读量:5753 次
发布时间:2019-06-18

本文共 1465 字,大约阅读时间需要 4 分钟。

在获取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 urldatadubbo://10.4.5.3:20880/com.welab.authority.service.AuthorityService?anyhost=true&application=welab-authority&dubbo=2.5.7#转成一个格式化对象>>> result = urlparse.urlparse(urldata)>>> print resultParseResult(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 ip10.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',[])

转载于:https://blog.51cto.com/yangrong/2296222

你可能感兴趣的文章
关于悲观锁和乐观锁的区别(最直观理解)
查看>>
hugo-最好用的静态网站生成器
查看>>
upgrade module on pypi
查看>>
剖析一个由sendfile引发的linux内核BUG
查看>>
MySQL5.5加主键锁读问题—续
查看>>
CCString
查看>>
Camera2挖坑日记---如何解决预览画面变形
查看>>
View的事件体系
查看>>
[译] 小 Tips 让你的交互动画从 “还不错” 变成 “超级棒”
查看>>
Golang通道Channel详解
查看>>
干货清单 | 3分钟告诉你深度学习应该这么学
查看>>
常用函数
查看>>
为 Hexo 搭建的博客添加属于自己的个性域名
查看>>
关于小程序打开app传参问题
查看>>
数组归并排序
查看>>
移动端网页怎么做?
查看>>
吴颖二:12.12 午夜金评 特朗普致力于通过税改计划演讲使美元指数暴涨
查看>>
中年妇女Python入门指南(二)
查看>>
IOS 崩溃日志分析
查看>>
[源码分析系列] 不要在循环体中使用 array_merge()
查看>>