【发布时间】:2020-09-11 04:07:46
【问题描述】:
我尝试从我从飞机跟踪网站的 api 请求获得的列表中“过滤”掉一些特定数据。
import json, urllib.request
url = "https://ktrax.kisstech.ch/backend/tracking?db=aviation&sw_lat=47.32453673528682&sw_lon=7.87192272434162&ne_lat=47.35361867238683&ne_lon=7.899774782752265&max_results=300&max_age=1960&apikey=TRACK-c47d70c58861af97"
response = urllib.request.urlopen(url)
data = json.load(response)['targets']
print(data)
plane = data.index('icao:4B4BAB')
print(plane)
如您所见,我已经将 json 数据用作字典并对列表“目标”进行排序。然后产生以下输出(类型 = 列表)。
[['icao:4B51E1', 1, '2020-05-24T13:18:53Z', 0, 47.349683, 7.8754167, 1067, 0, 3, 28, 47, -0.6, 15, 0, 1, 0, 'LSPO', ['HB-3386', 'O7', '-', '-'], 100, 0, 0], ['icao:4B4BF5', 1, '2020-05-24T13:18:53Z', 0, 47.3497, 7.87945, 1593, 0, 1, 29, 248, 0.9, -0.9, 0, 1, 0, 'LSPO', ['HB-1870', 'FC', '-', '-'], 100, 0, 0], ['icao:4B512D', 1, '2020-05-24T13:18:53Z', 0, 47.349617, 7.87505, 990.6, 0, 2, 29, 79, -1.1, 11, 0, 1, 0, 'LSPO', ['HB-3206', 'O6', '-', '-'], 100, 0, 0], ['icao:4B5105', 1, '2020-05-24T13:18:48Z', 5, 47.343817, 7.88915, 459, 0, 2, 0, 1800, 0.1, 0, 0, 1, 0, 'LSPO', ['HB-3166', 'O2', '-', '-'], 100, 0, 0], ['icao:4B4AA8', 1, '2020-05-24T13:18:35Z', 19, 47.343867, 7.8887167, 465.7, 0, 1, 0, 1800, 0.1, 0, 0, 1, 0, 'LSPO', ['HB-1537', 'W', '-', '-'], 100, 0, 0], ['icao:4B51B4', 1, '2020-05-24T13:18:51Z', 2, 47.3437, 7.8885, 464.8, 0, 2, 0, 1800, -0.097, 0, 0, 1, 0, 'LSPO', ['HB-3341', 'AK', '-', '-'], 100, 0, 0], ['icao:4B4BAB', 1, '2020-05-24T13:18:47Z', 6, 47.344083, 7.8883, 460.9, 0, 2, 0, 1800, -0.097, 0, 0, 1, 0, 'LSPO', ['HB-1796', '-', '-', '-'], 100, 0, 0], ['flarm:DD810E', 1, '2020-05-24T13:18:47Z', 6, 47.344017, 7.8890333, 460.9, 0, 3, 0, 1800, 0, 0, 0, 0, 0, 'LSPO', ['-', '-', '-', '-'], 100, 0, 0], ['icao:4B4ADC', 1, '2020-05-24T13:18:54Z', 0, 47.338767, 7.8773333, 814.7, 0, 2, 24, 309, 0.2, 6.3, 0, 1, 0, 'LSPO', ['HB-1589', '-', '-', '-'], 100, 0, 0]]
现在,我只想过滤掉 icao:... 的特定条目,然后从指示飞机高度差的列表中读取特定 icao 代码的第十一个元素(当像 python 一样计数时)。
例如:['icao:4B51E1', '-0.6', 'icao:4B51B4', '-0.097']
现在我的问题是,这样的条目:['icao:4B4BAB', 1, '2020-05-24T13:18:47Z', 6, 47.344083, 7.8883, 460.9, 0, 2, 0, 1800, -0.097, 0, 0, 1, 0, 'LSPO', ['HB-1796', '-', '-', '-'], 100, 0, 0] 标记了一个列表条目。我现在如何首先在整个列表中搜索特定的 icao:4B4BAB ?由于类型错误,在对“目标”进行排序后立即使用字典函数对它们进行排序不起作用,如果我尝试找到它的索引,它会给我一个值错误,并说该元素不属于列表(但它显然在那里)。
另外,如何打印代码和条目的第十一个元素?
期待你的回答
【问题讨论】:
标签: python list api dictionary types