2016-12-05 5 views
0

私は反復して、pythonリクエストモジュール経由で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)}] 

発信元と宛先の座標が正しくフォーマットされていないことが判明しています。

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を返します:

を、Googleの行き方APIは latlngが、私はそうのような辞書のリストを繰り返し処理 float

ある形式lat,lngでそれらを期待します

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

どのようにしてthiのようなタプルのリストを反復処理しますかパラメータを正しく数式に要求しますか?

私は上記の操作なしにしようとすると、要求はリストとして出発地と目的地のデータを閲覧するため、そのような2つの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.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 URLparamsの準備はOKです。

関連する問題