Python3 url解码与参数解析

在获取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‘,[])

原文地址:http://blog.51cto.com/yangrong/2296222

时间: 2025-01-04 16:40:23

Python3 url解码与参数解析的相关文章

将url的查询参数解析成字典对象

1.先截取请求参数字符串: 2.使用decodeURIComponent函数进行解码: 3.正则匹配出参数对象: function getQueryObject(url) { url = url == null ? window.location.href : url; var search = url.substring(url.lastIndexOf("?") + 1); var obj = {}; var reg = /([^?&=]+)=([^?&=]*)/g;

JDBC中在配置数据源url中部分参数解析

url: jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false 1. serverTimezone 关于时区的设置 常见问题:从数据库返回的时间比真正保存的时间提前8小时. 解决:将 serverTimezone=UTC  改为 serverTimez

java 获取url及url参数解析

java  获取url及url参数解析 一.url编码:URLEncoder.encode(userName); 二.url解码: URLDecoder.decode(userName);

js js获取url及url参数解析

js获取url及url参数解析 一.获取url: var url=window.location.herf; 二.url参数解析: function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var obj= new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("

百度URL参数解析

百度URL参数解析 在用Python爬取百度搜索的内容时,发现百度搜索的url非常的长,往往会跟一大段的参数,但其实很多参数都是没有必要的,如同样是搜索java关键字,可以通过 http://www.baidu.com/s?wd=java 如此简单的URL来获取,而下面这个超级复杂的URL也是同样进行了关键字java的搜索: http://www.baidu.com/s?wd=java&rsv_spt=1&rsv_iqid=0xd3c8c51900052eb3&issp=1&

把URL参数解析成一个Json对象

问题:请编写一个JavaScript函数parseQueryString,它的用途是把URL参数解析为一个对象.           eg:var obj=parseQueryString(url); 创建对象的三种形式:        一:                var Person=new Object();                Person.name="Sun";                Person.age=24;        二:         

五种URL参数解析方法的性能比较

因为在最近项目中需要解析日志中的 URL 的参数,所以我对比了一下五种不同 的 URL 参数解析方法的性能.URL 参数解析方法: httpclient org.apache.http.client.utils.URLEncodedUtils URLEncodedUtils.parse(query, Charset.forName("UTF-8"));jettyUtil org.eclipse.jetty.util.UrlEncoded MultiMapvalues = new Mul

URL 参数解析

url参数解析为对象 url参数解析为数组 URLSearchParams(兼容性有待提高,慎用) url参数解析为对象 const urlQueryToObject = (url) => { if((/\?/).test(url)) { const arr = url.split('?')[1].split('&'); return arr.reduce((acc,value,index) => {value.replace(/(\w+)=(\w+)/,(match,p1,p2) =

封装一个方法:把URL参数解析为一个对象,来获取地址栏url里面的传递的参数。

URL参数解析 //获取url方法 //window.location.href // function getUrlkey(url){ var params = {}, arr = url.split("?"); if (arr.length <= 1) return params; arr = arr[1].split("&"); for(var i=0, l=arr.length; i<l; i++){ var a = arr[i].spl