Python请求API

Python请求API,python,api,dataframe,loops,request,Python,Api,Dataframe,Loops,Request,我试图从NOAA API中检索一些数据,但有一个错误我无法解决 location=[] def find_xy(Name, lat, long): api = url+str(lat)+','+str(long) r = requests.get(api).json() x = r['properties']['gridX'] y = r['properties']['gridY'] xy=(Name, str(lat), str(long), x

我试图从NOAA API中检索一些数据,但有一个错误我无法解决

    location=[]
def find_xy(Name, lat, long):
    api = url+str(lat)+','+str(long)
    r = requests.get(api).json()
    x = r['properties']['gridX']
    y = r['properties']['gridY']
    xy=(Name, str(lat), str(long), x, y)
    location.append(xy)

for i in dfgrid:
    Name = dfgrid['Name']
    lat =  dfgrid['Lat']
    long =  dfgrid['Long']    
    find_xy(Name,lat,long)
dfgrid中有一个lat和long的列表,我想循环遍历每个坐标并获取noaaapi中的gridX和gridY值

我可以使用一个示例来提取这些数据,但是当我尝试在整个dfgrid中循环时,我收到以下错误

---------------------------------------------------------------------------KeyError回溯(最近的呼叫 最后)在 3 lat=dfgrid['lat'] 4长=dfgrid['long'] ---->5查找xy(名称、横向、纵向)

在find_xy中(名称、横向、纵向) 3 api=url+str(横向)+','+str(纵向) 4r=requests.get(api.json()) ---->5X=r['properties']['gridX'] 6 y=r['properties']['gridY'] 7 xy=(名称、横向、纵向、纵向)

KeyError:“属性”

通过以下方式解决此问题:

dfgrid = pd.DataFrame(df,columns=['Name','Lat','Long'])

dfgrid['Lat']=dfgrid['Lat'].astype(str)

dfgrid['Long']=dfgrid['Long'].astype(str)

dfgrid['coordinate']= dfgrid['Lat']+","+dfgrid['Long']
我之前做的是添加Lat和Long,尽管我同时str()了Lat和Long float。。。这导致API请求出错。仍然在试图解释为什么str(Lat)+“,”+str(Long)不起作用,但无论如何我找到了一个解决方案

谢谢每一位试图帮助我的人。非常感谢。
Mike

在尝试访问
r['properties']
之前,您是否尝试过一些简单的调试,比如打印
r
?或者尝试防御:使用
r.get('properties')
并检查结果是否为非
None