Как в url вставить различное количество переменных?

Существует url, которую необходимо редактировать перед отправлением на сервер:

url = https://market.com/api/stores/1950/products?tid=paskha/iaitsa&sort=popularity

Когда я знаю количество переменных с заменой проблем нет:

store_id = '1950'
category = 'paskha'
subcategory = 'iaitsa'
moditify_url = f"https://market.com/api/stores/{ store_id }/products?tid={ category }/{ subcategory }&sort=popularity".format()

Но встала проблема количество переменных может быть различным:

store_id = '1950'
katalog = 'market_name' # Появилась еще одна переменная !
category = 'paskha'
subcategory = 'iaitsa'
moditify_url = f"https://market.com/api/stores/{ store_id }/products?tid={ katalog }/{ category }/{ subcategory }&sort=popularity".format()

Как редактировать url при различном количестве переменных?


Ответы (1 шт):

Автор решения: Andy Pavlov

Можно собрать все переменные через параметры метода *args, таким образом, чтобы первый был store_id, а остальные с помощью str.join() собрать в переменную url.

def make_path(*args):
    store_id = args[0]
    path_vars = '/'.join(args[1:])
    return f"https://market.com/api/stores/{ store_id }/products?tid={ path_vars }&sort=popularity"

store_id = '1950'
katalog = 'market_name'
category = 'paskha'
subcategory = 'iaitsa'

print(make_path(store_id, katalog, category, subcategory))
# https://market.com/api/stores/1950/products?tid=market_name/paskha/iaitsa&sort=popularity
→ Ссылка