代码在函数外部工作,但不在函数内部工作

嗨,我在将函数应用于数据框时遇到问题,因为它返回错误

----> 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)

质心是一个包含两列经度和纬度的数据框

评论