2016-09-21 80 views
-2

這可能是一個簡單的問題,但我無法解決它。在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使用urllib.parse moduleurlparse錯誤

+0

有你自己嘗試過什麼了嗎?你遇到什麼問題? –

+0

@theflash我相信錯誤是索引超出範圍,因爲url本身,沒有額外的字符串,只有20個字符長,而你正在做'url [23:]' – thiruvenkadam

+0

@thiruvenkadam對不起,這只是一個虛擬的例子顯示..我使用一些其他的網址,它有23個字符。 –

回答

2

),首先將網址分爲多個部分:

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') 

考慮到這一點,需要t您的網址是否正確形成帽(有,至少,//開始,最好有像http://完全成形方案)的分析正確挑選出的主機名:

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

如果您的網址缺少//部分在開始時,首先添加一個。

0

您可以使用字符串替換或字符串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") 
+0

同樣,這裏假設URL中只有一個這樣的斜槓。 –

+0

我的看法是,OP希望在API的最後部分之前添加字符串,而不是作爲前置:-)就像有'example.com/a/b/d'並且需要將其轉換爲示例.com/a/b/c/d' – thiruvenkadam

+0

這遠非確定;我已經提示OP向問題添加更多細節。 –

相關問題