有没有更好的方式在Python中编写这个URL操作?
发布时间:2020-12-16 23:11:14 所属栏目:Python 来源:网络整理
导读:如果有更简单的方法从url中删除特定的参数,我很好奇.我想出了如下这似乎有点冗长.使用的库或更多的 pythonic版本赞赏. parsed = urlparse(url)if parsed.query != "": params = dict([s.split("=") for s in parsed.query.split("")]) if params.get("page")
如果有更简单的方法从url中删除特定的参数,我很好奇.我想出了如下这似乎有点冗长.使用的库或更多的
pythonic版本赞赏.
parsed = urlparse(url) if parsed.query != "": params = dict([s.split("=") for s in parsed.query.split("&")]) if params.get("page"): del params["page"] url = urlunparse((parsed.scheme,None,parsed.path,urlencode(params.items()),parsed.fragment,)) parsed = urlparse(url) 解决方法
我创建了一个小帮手类,以一种结构化的方式来表示一个url:
import cgi,urllib,urlparse class Url(object): def __init__(self,url): """Construct from a string.""" self.scheme,self.netloc,self.path,self.params,self.query,self.fragment = urlparse.urlparse(url) self.args = dict(cgi.parse_qsl(self.query)) def __str__(self): """Turn back into a URL.""" self.query = urllib.urlencode(self.args) return urlparse.urlunparse((self.scheme,self.fragment)) 那你可以做: u = Url(url) del u.args['page'] url = str(u) 更多关于这个:Web development peeve. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |