Passing Parameters In URLs

Viewed 24

I am experiencing problem passing parameters to query. I think there is problem with listed values (locations_ids).

url_binaz="https://bina.az/baki/kiraye/menziller"    
params_binaz={'location_ids':['a','b'],"paid_daily":"false","price_from":"250","price_to":"400"}                
r=requests.get(url_binaz,params=params_binaz)

My expected result: https://bina.az/baki/kiraye/menziller?location_ids=a&location_ids=b&paid_daily=false&price_from=250&price_to=400

Actual result: https://bina.az/baki/kiraye/menziller?paid_daily=false&price_from=250&price_to=400

2 Answers

I replaced "location_ids" keyword with "locations_ids[]" and interestingly it worked !

An alternative way to do this:

import requests

url_binaz="https://bina.az/baki/kiraye/menziller"    
params_binaz={'location_ids':['a','b'],"paid_daily":"false","price_from":"250","price_to":"400"}    
url_binaz += "?"
for i in range(len(params_binaz['location_ids'])):
    if i < len(params_binaz['location_ids']) - 1:
        url_binaz += "location_ids={{a}}&".replace("{{a}}", params_binaz['location_ids'][i])
    else:
        url_binaz += "location_ids={{a}}".replace("{{a}}", params_binaz['location_ids'][i])

url_binaz += "&paid_daily=" + params_binaz['paid_daily']
url_binaz += "&price_from=" + params_binaz['price_from']
url_binaz += "&price_to=" + params_binaz['price_to']

r=requests.get(url_binaz,params=params_binaz)
Related