有没有更好的方式在Python中编写这个URL操作?
发布时间:2020-05-29 16:09:20 所属栏目: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. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
