2016-12-05 3 views
0

У меня есть список кортежей, которые я хочу выполнить итерации и отправить запрос http через модуль запросов python.Отправляющий запрос от объекта python

api_schedule = [ 
{'destination': (51.490527, 0.267840), 'id': 'trial_a', 'origin': (51.430732, 0.239308)}, 
{'destination': (51.429488, 0.239060), 'id': 'trial_b', 'origin': (51.490518, 0.267578)}] 

Координаты происхождения и назначения затруднены в правильном форматировании. Directions API Google ожидает их в формате lat,lng где lat и lng являются float

я итерацию по списку словарей так:

for pair in api_schedule: 
    departure_time = time.time() 
    origin_lat = str(pair['origin'][0]) 
    origin_lng = "," + str(pair['origin'][1]) 
    origin = origin_lat + origin_lng 
    destination_lat = str(pair['destination'][0]) 
    destination_lng = "," + str(pair['destination'][1]) 
    destination = destination_lat + destination_lng 
    params = { 
    "origin" : origin, 
    "destination" : destination 
    "key" : api_Key, 
    "departure_time" : departure_time, 
    "mode" : mode 
    } 
    request = requests.Request('GET', url_raw, params=params).prepare() 
    print request.url 

Однако это возвращает %2C вместо ,:

https://maps.googleapis.com/maps/api/directions/json?origin=51.430732%2C0.239308&destination=51.490527&destination=0.26784

Как перебирать список кортежей типа thi s и правильно использовать формулы для правильной настройки параметров?

Когда я пытаюсь без выше манипуляций, запросы рассматривает данные происхождения и назначения, списки и тем самым создает два Params, как так:

https://maps.googleapis.com/maps/api/directions/json?origin=51.430732&origin=0.239308 

Желаемый результат:

https://maps.googleapis.com/maps/api/directions/json?origin=51.430732,0.239308&destination=51.490527,0.26784 
+0

Каким будет необходимый результат? –

+0

Первый вопрос помог мне понять, почему он не работает. Поле преобразуется в список. Этот вопрос заключается в том, как решить эту проблему для этого приложения. – LearningSlowly

+0

Пожалуйста, правильно определите «формулу параметров»: каков ожидаемый URL? –

ответ

1

https://maps.googleapis.com/maps/api/directions/json?origin=51.430732%2C0.239308&destination=51.490527,0.26784 и https://maps.googleapis.com/maps/api/directions/json?origin=51.430732,0.239308&destination=51.490527,0.26784 являются идентичны.

It is correct to use %2C instead of , in an URL. Ваша подготовка params в порядке.

Смежные вопросы