Python3 url解码与参数解析

  

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

  
 <=坝镅詐ython代码类> url='达博% 3 a % 2 f % 2 f10.4.5.3 % 3 a20880 % 2 fcom.welab.authority.service.authorityservice % 3 fanyhost % 3 dtrue % 26应用% 3 dwelab-authority % 26达博% 3 d2.5.7” 
  

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

  
 <代码>达博://10.4.5.3:20880/com.welab.authority.service.AuthorityService ? anyhost=true&应用程序=welab-authority&达博=2.5.7  
  

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

  

Python2解码与提取参数

  ,
 <代码>祝辞的在比;进口urlparse
  在在在urldata=https://www.yisu.com/zixun/urlparse.unquote (url)>>打印urldata
  达博://10.4.5.3:20880/com.welab.authority.service.AuthorityService ? anyhost=true&application=welab-authority&dubbo=2.5.7
  
  #转成一个格式化对象>>结果=urlparse.urlparse (urldata)>>打印结果
  ParseResult(计划=达博,netloc=10.4.5.3:20880,路径='/com.welab.authority.service。AuthorityService " params="、查询=' anyhost=true&应用程序=welab-authority&达博=2.5.7 ',片段=")
  
  #提取url中的参数,即url中?后的内容
  在在在args=urlparse.parse_qs (result.query)
  在在在打印参数
  {“应用程序”:“welab-authority”,“anyhost”:“真正的”,“达博”:[' 2.5.7 ']}
  
  #获取我想要的信息
  在在在ip=result.netloc
  在在在应用=args.get(“应用程序”,[])
  在在在打印的ip
  10.4.5.3:20880
  在在在打印应用程序
  [' welab-authority ']  
  

Python3解码与提取参数

  

上面的测试中详细打印了输出信息,这次就直接写在py脚本里了。

  
 <代码类="语言python ">从urllib进口解析
  
  # url解码
  urldata=https://www.yisu.com/zixun/parse.unquote (urldata)
  
  # url结果
  结果=parse.urlparse (urldata)
  
  # url里的查询参数
  query_dict=parse.parse_qs (result.query)
  
  #获取我需要的信息
  ip=result.netloc
  应用=query_dict.get(“应用程序”,[])
   

Python3 url解码与参数解析