2016-12-01 53 views
1

我正在使用OpenSkyApi(文档here)。OpenSkyApi:字符串数组或字符串列表?

我想使用的功能

get_states(time_secs=0, icao24=None, serials=None) 

上Docs可以看到:

返回:OpenSkyStates如果请求成功,无否则

这是我的代码实际上不起作用(该功能返回无)

def get_flights(): 
    s = api.get_states() 
    flights = [] 
    j = 0 
    # I want just 5 best results of the first 10 elements returned with **api.get_states()** 
    for i in range(10): 
      tmp = s.states[i] 
      if tmp.icao24 != "" and tmp.latitude != "" and tmp.longitude != "" and j < 5: 
       flights.append(tmp.icao24) 
       j += 1 
    return flights 

flights = get_flights() 
s = api.get_states(icao24=flights) 

,实际上这个代码工作

flights = ['43ea96', 'aa8477', 'aa56da', 'a3e917', 'a52911'] 
s = api.get_states(icao24=flights) 

print(s) 

我怎么能传递一个字符串数组dinamically?

P.s.该功能基本上是一个REST API返回JSON对象(例如):

{'altitude': 8001, 
'callsign': 'FDX1162 ', 
'heading': 317.58, 
'icao24': 'a8f9f2', 
'latitude': 39.1745, 
'longitude': -103.8766, 
'on_ground': False, 
'origin_country': 'United States', 
'sensors': None, 
'time_position': 1480590928, 
'time_velocity': 1480590928, 
'velocity': 226.49, 
'vertical_rate': -13} 

回答

0

由于fixje,打开斯凯网络项目的合作者,我固定我的问题。 他告诉我说:

的API也将返回None如果超出速率限制为下表给出 。

enter image description here

在第一代码片段您发出 很短的时间内连续两次请求,所以第二个,

api.get_states(icao24=flights) 

将返回