如何在urlparse中用新值替换查询?

2024-10-01 02:18:30 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个数据如下:

 item = '//s780.scene7.com/is/image/forever/301596014_001?hei=98&wid=98'

使用urlparse模块。如何用新的大小替换上述数据,使其看起来像这样:

^{pr2}$

Tags: 模块数据imagecomisitemurlparseforever
3条回答

这就是你想要的吗?在

item_360 = item.replace("=98","=360")
print item_360
'//s780.scene7.com/is/image/forever/301596014_001?hei=360&wid=360'

我用“=”来避免替换前面的数字(如果存在的话)。在

对于更复杂的替换,可以查看regex

因此,如果您不知道98,可以使用regex:

^{pr2}$

如果hei和wid总是等于一个数字,那么我们有:

 a = item[item.find('=')+1:item.find('&')] #this is the number in url (in your example it is 98
 item.replace(a, '360')   #item.replace(a, NewNumber) 

希望有帮助:)

以下是根据请求使用urlparse的答案:

import urllib
import urlparse

url = '//s780.scene7.com/is/image/forever/301596014_001?hei=98&wid=98'
parts = urlparse.urlparse(url)
query_dict = urlparse.parse_qs(parts.query)  # {'wid': ['98'], 'hei': ['98']}
query_dict['wid'] = '360'
query_dict['hei'] = '360'
new_parts = list(parts)
new_parts[4] = urllib.urlencode(query_dict)
print urlparse.urlunparse(new_parts)

相关问题 更多 >