2016-12-05 54 views
0

我有一個我想要遍歷的元組列表,並通過python requests模塊發送一個http請求。發送來自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)}] 

原點和目標座標證明難以正確格式化。在谷歌地圖API希望他們在格式lat,lng其中latlngfloat

我在字典中的列表循環,像這樣:

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並使用請求來正確地計算參數?

當我嘗試沒有上述操作,請求意見的出發地和目的地數據,列表和由此產生兩個參數,如下所示:

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

需要的結果是什麼? – 2016-12-05 09:48:20

+0

第一個問題幫助我理解它爲什麼不起作用。該字段正在轉換爲列表。這個問題是我如何解決這個應用程序的這個問題。 – LearningSlowly

+0

請定義'正確的公式參數':期望的URL是什麼? – 2016-12-05 09:50:51

回答

1

https://maps.googleapis.com/maps/api/directions/json?origin=51.430732%2C0.239308&destination=51.490527,0.26784https://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是好的。

相關問題