Python请求API
我试图从NOAA 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
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
?