我看不出之间这是什么一样,什么你的代码做一个差异。希望这对你有一些用处。
>>> 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
谢谢!你完全正确@Bill Bell。我看到了名称到输出的映射。你碰巧知道为什么我的基本循环不会打印(lat,lng),但是如果我只是做'location ['lat'],location ['lng']呢?我添加了我的字符串列表的照片,以及没有for循环的所需输出。 –
你如何定义'api_list'? –
api_list是第二张照片。这是一个数据帧列,我将其转换为我想要传入循环的列表。问题是,有效载荷是硬编码为单个地址,所以我需要我的dictionairy保持一个键,但具有独特的地址,每个键值对(这将来自api_list我试图这样的事情: '''有效载荷= {} 键= API_KEY api_list 因为我在按键:。 有效载荷[i] = api_list [I]''' –