我看不出这与您的代码的作用有什么区别。希望对你有用。
>>> import requests
>>> payload = {'key':}
>>> base_url = 'https://maps.googleapis.com/maps/api/geocode/json'
>>> payload = {'address': '1845 E. Broadway Road Ste. 102, Tempe, AE, 85282'}
>>> r = requests.get(base_url, params=payload)
>>> r
<Response [200]>
>>> coords = r.json()['results'][0]['geometry']['location']
>>> coords['lat']
33.406601
>>> coords['lng']
-111.9075196
编辑:
从一个包含两列的数据框开始,一列是兽医医院的名称,一列是它们的地址。
>>> import pandas as pd
>>> df
0 \
0 The Animal Clinic
1 Sherbourne Animal Hospital
2 Spadina Animal Hospital
3 Wellesley Animal Hospital
4 Cabbagetown Pet Clinic
1
0 106 Mutual St Toronto Ontario M5B 2R7
1 320 Richmond Street East Unit 8 Toronto Onta...
2 125 Spadina Avenue Toronto Ontario M5V 2K8
3 8 Wellesley St W Toronto Ontario M4Y 1E7
4 239 Gerrard St E Toronto Ontario M5A 2G1
使用.tolist() 以列表的形式获取地址,以便一次将一个地址传递给谷歌,以获取存储在同名列表中的纬度和经度。显示结果。
>>> import requests
>>> base_url = 'https://maps.googleapis.com/maps/api/geocode/json'
>>> latitudes = []
>>> longitudes = []
>>> for address in df[1].tolist():
... payload = {'address': address}
... r = requests.get(base_url, params=payload)
... coords = r.json()['results'][0]['geometry']['location']
... latitudes.append(coords['lat'])
... longitudes.append(coords['lng'])
...
>>> latitudes
[43.6572571, 43.6535161, 43.6472168, 43.6650199, 43.6617416]
>>> longitudes
[-79.37609119999999, -79.3688681, -79.39527749999999, -79.3851912, -79.369494]
现在将结果放入数据框中并显示完整的结果。
>>> df['latitudes'] = latitudes
>>> df['longitudes'] = longitudes
>>> df
0 \
0 The Animal Clinic
1 Sherbourne Animal Hospital
2 Spadina Animal Hospital
3 Wellesley Animal Hospital
4 Cabbagetown Pet Clinic
1 lat latitudes \
0 106 Mutual St Toronto Ontario M5B 2R7 -31 43.657257
1 320 Richmond Street East Unit 8 Toronto Onta... -42 43.653516
2 125 Spadina Avenue Toronto Ontario M5V 2K8 -20 43.647217
3 8 Wellesley St W Toronto Ontario M4Y 1E7 19 43.665020
4 239 Gerrard St E Toronto Ontario M5A 2G1 50 43.661742
longitudes
0 -79.376091
1 -79.368868
2 -79.395277
3 -79.385191
4 -79.369494