Python 在url中间添加一个字符串

Python 在url中间添加一个字符串,python,string,url,Python,String,Url,这可能是一个简单的问题,但我无法解决它 我的url是:“www.example.com/links” 我想在url之间添加/skip_session/id=%s/,使其成为: www.example.com/skip_session/id=%s/links 有人能帮我吗 我试着用 url[23:]+ "/skip_session/id=%s/" + url[:52] 但是它给出了一个错误,因为您想在URL的路径部分添加字符串前缀,您可以使用(在Python 2中),首先将URL分成几个部分:

这可能是一个简单的问题,但我无法解决它

我的url是:
“www.example.com/links”

我想在url之间添加
/skip_session/id=%s/
,使其成为:

www.example.com/skip_session/id=%s/links
有人能帮我吗

我试着用

url[23:]+ "/skip_session/id=%s/" + url[:52]
但是它给出了一个错误

,因为您想在URL的路径部分添加字符串前缀,您可以使用(在Python 2中),首先将URL分成几个部分:

try:
    # Python 3
    from urllib.parse import urlparse
except ImportError:
    # Python 2
    from urlparse import urlparse

def insert_path_prefix(url, prefix):
    parts = urlparse(url)
    updated = parts._replace(path=prefix + parts.path)
    return updated.geturl()

url = insert_path_prefix(url, '/skip_session/id=%s')
考虑到这一点,您的URL确实需要正确格式(至少从
/
开始,最好是完全格式的方案,如
http://
),以便解析正确地选择主机名:

>>> insert_path_prefix('http://www.example.com/links', '/skip_session/id=%s')
'http://www.example.com/skip_session/id=%s/links'

如果URL开头缺少
/
部分,请先添加一个。

您可以使用字符串替换或字符串rsplit来完成此任务

url_string = "www.example.com/links"
parsed_url = url_string.rsplit("/", 1)
new_url = "/skip_session/id=%s/".join(parsed_url)
或者这个:

url_string = "www.example.com/links"
new_url = url_string.replace("/links", "/skip_session/id=%s/links")

你自己试过什么了吗?您遇到了什么问题?@theflash我确信错误是索引超出了范围,因为url本身(没有附加字符串)只有20个字符长,而您正在执行
url[23://code>@thiruvenkadam抱歉,这只是一个虚拟示例。。我正在使用一些其他网址,它有23个字符。在未来,请您的问题,以添加所要求的详细信息;我把你的评论转移到这个问题上。但是,您没有包括您得到的错误。关于url的任何详细信息(是否缺少方案部分,因此
http://
,路径如何变化,是否有
:80
端口部分或
username:password@
身份验证等?)也会有所帮助。@theflash那么您不应该再次执行
url[:23]+“/skip_session/id=%s/”+url[24:
,这假设URL中只有一个这样的斜杠。我的观点是OP希望在API的最后一部分之前添加字符串,而不是作为前缀:-)就像有
example.com/a/b/d
一样,需要将其转换为
example.com/a/b/c/d
,这还远远不能确定;我已经提示OP为这个问题添加了更多的细节。不管怎样,像您的答案一样,将URL视为URL并进行操作比字符串解析要好得多。这个答案将在相当简单的用例中进行一些快速而肮脏的字符串操作