Python遍历JSON - dict对象不可调用



我想从Aviationstack API解析航班数据。对于本例,我将URL格式化为获取从马赛机场(法国)出发的航班的数据,参数为dep_icao=LFML(参见文档):

# get data for flights from Marseille airport
url = 'http://api.aviationstack.com/v1/flights?access_key=MYAPIKEY&dep_icao=LFML'
req = requests.get(url)
response = req.json()

这是响应(缩短)

{'pagination': {'limit': 100, 'offset': 0, 'count': 100, 'total': 377},
'data': [{'flight_date': '2022-12-24',
'flight_status': 'active',
'departure': {'airport': 'Marseille Provence Airport',
'timezone': 'Europe/Paris',
'iata': 'MRS',
'icao': 'LFML',
'terminal': '1A',
'gate': None,
'delay': 10,
'scheduled': '2022-12-24T09:00:00+00:00',
'estimated': '2022-12-24T09:00:00+00:00',
'actual': '2022-12-24T09:09:00+00:00',
'estimated_runway': '2022-12-24T09:09:00+00:00',
'actual_runway': '2022-12-24T09:09:00+00:00'},
'arrival': {'airport': 'El Prat De Llobregat',
'timezone': 'Europe/Madrid',
'iata': 'BCN',
'icao': 'LEBL',
'terminal': '1',
'gate': None,
'baggage': '06',
'delay': None,
'scheduled': '2022-12-24T10:05:00+00:00',
'estimated': '2022-12-24T10:05:00+00:00',
'actual': None,
'estimated_runway': None,
'actual_runway': None},
'airline': {'name': 'Qatar Airways', 'iata': 'QR', 'icao': 'QTR'},
'flight': {'number': '3721',
'iata': 'QR3721',
'icao': 'QTR3721',
'codeshared': {'airline_name': 'vueling',
'airline_iata': 'vy',
'airline_icao': 'vlg',
'flight_number': '1509',
'flight_iata': 'vy1509',
'flight_icao': 'vlg1509'}},
'aircraft': None,
'live': None},
[...]
}]}

然后我想遍历这个JSON响应。我可以获得pagination的信息,但我只能从data的第一个元素获得信息,所以我稍后将循环遍历所有结果。

我的问题是,我只想得到iata项目嵌套在flight。我试图得到它的方式返回'dict' object is not callable错误。

# iterate through JSON response
pagination_data = response.get("pagination")
flight_data = response.get("data")[0]
total_results = pagination_data.get("total")
flight = flight_data.get('flight')('iata')
pprint(f"total results : {total_results}")
pprint(f"flight : {flight}")

get方法将返回一个非函数字典,因此不能调用

应该是flight = flight_data.get('flight').get('iata')

选择:

(但不返回None)flight_data.get('flight')['iata']

(但不返回None)flight=flight_data['flight']['iata']

最新更新