-1

次のコードを使用すると大量のデータが得られますが、lat型のデータを1つの文字列として保存したいだけです。python 3でgoogle geocode APIからlat/longを取得するにはどうすればよいですか?

辞書のように見えますが、私は1つのようにアクセスしようとしました:strtLoc['location']しかし、インデックスはintエラーでなければなりません。インデックスを作成しようとすると1つのエントリしかなく、len(strtLoc)は1を返します。javascriptではstrtLoc.locationのようなものを見ましたが、Pythonで緯度と経度のみを取得する方法はわかりません。

Pythonコード: strtLoc = gmaps.geocode(address=startP)

結果:

[{'types': ['locality', 'political'], 'formatted_address': 'New York, NY, USA', 'address_components': [{'long_name': 'New York', 'types': ['locality', 'political'], 'short_name': 'New York'}, {'long_name': 'New York', 'types': ['administrative_area_level_1', 'political'], 'short_name': 'NY'}, {'long_name': 'United States', 'types': ['country', 'political'], 'short_name': 'US'}], 'geometry': {'viewport': {'southwest': {'lat': 40.4773991, 'lng': -74.25908989999999}, 'northeast': {'lat': 40.9175771, 'lng': -73.70027209999999}}, 'location_type': 'APPROXIMATE', 'bounds': {'southwest': {'lat': 40.4773991, 'lng': -74.25908989999999}, 'northeast': {'lat': 40.9175771, 'lng': -73.70027209999999}}, 'location': {'lat': 40.7127837, 'lng': -74.0059413}}, 'place_id': 'ChIJOwg_06VPwokRYv534QaPC8g', 'partial_match': True}] 
+0

それは '' [で始まる使用してカンマ、でそれらを結合することができます。それは辞書を含んでいます。座標を取得するのが難しいです。 –

+0

私はインデックスを使ってみましたが、上記のすべてのデータを含むstrtLoc [0]だけがあります。私はgmaps.geocode(address = startP)内のitem forループを試しました:strtLoc.append(item) 'と同じ問題がありました。 – user6912880

答えて

0

問題は、APIを使用すると、strtLoc = strtLoc[0]とそのにアクセスできるように、単一の要素を含むリストを返すということです。次に、位置キーの下にあるlatプロパティとlngプロパティにアクセスできます。

strtLoc = strtLoc[0] 
location = strtLoc['geometry']['location'] 
lat = location['lat'] 
lng = location['lng'] 

あなたが1つの文字列としてそれをしたい場合、あなたはそれのリストになりstr.join()

location = ','.join([str(lat), str(lng)]) 
関連する問題