嗨,我在将函数应用于数据框时遇到问题,因为它返回错误
----> 8 return data['rows'][0]['elements'][0]['duration']['value']
KeyError: 'duration'
我有功能
def calc_dist(row):
lat = centroid['Latitude'][row]
lng = centroid['Longitude'][row]
base_url = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=place_id:{}&destinations={},{}&key=xxxxxx"
url = base_url.format(datas.place_id, lat, lng)
r = requests.get(url)
data = r.json()
return data['rows'][0]['elements'][0]['duration']['value']
当我自己在函数内部运行代码时,它可以正常工作并返回api调用 看起来像
{'destination_addresses': ['50 W 20th St, New York, NY 10011, USA'],
'origin_addresses': ['LaGuardia Airport (LGA), Queens, NY 11371, USA'],
'rows': [{'elements': [{'distance': {'text': '9.4 mi', 'value': 15134},
'duration': {'text': '28 mins', 'value': 1653},
'status': 'OK'}]}],
'status': 'OK'}
这是我的申请,如果有什么用
centroid['distance'] = centroid.apply(calc_dist, axis=1)
质心是一个包含两列经度和纬度的数据框