Logo
Section 1 / 4

航空 API

学习如何查找最便宜的航班、查询航班状态,以及搜索城市和机场。

导入

航空 API

学习如何查找最便宜的航班、查询航班状态,以及搜索城市和机场。

Amadeus 航空 API 允许我们执行多种与航班相关的操作,包括搜索航班、预订航班、查询航班状态、搜索机场等。在本课程中,我们将介绍以下航空 API:

  • 航班优惠搜索
  • 按需航班状态查询
  • 机场与城市搜索

航班优惠搜索 API

航班优惠搜索 API 可帮助我们为旅行行程查找最佳航班优惠。该 API 会提供来自 500 多家航空公司中价格最低的航班,适用于我们指定的行程路线和时长。我们可以根据行程计划,在两个或多个城市之间搜索航班。此 API 会为每个推荐的航班提供详细信息,包括航空公司名称、票价以及其他重要航班信息。

注意: 此 API 不包含美国航空(American Airlines)的航班,也不包含 低成本航空公司 的航班。

我们将使用以下 URL 进行航班优惠搜索:

https://test.api.amadeus.com/v2/shopping/flight-offers

输入参数

参数类型必填/可选描述
ACCESS_TOKEN字符串必填我们的访问令牌。
originLocationCode字符串必填出发城市的3位字母代码或机场代码。
destinationLocationCode字符串必填目的地城市的3位字母代码或机场代码。
departureDate字符串(日期)必填出发日期。
adults整数必填成年人数量(12岁及以上)。默认值为 1。
returnDate字符串(日期)可选返回日期。若未指定,则仅返回单程行程。
children整数可选儿童数量(2至12岁)。
infants整数可选婴儿数量(2岁以下)。
travelClass字符串可选指定旅客在飞行过程中主要停留的舱位类型。可用值为 ECONOMY(经济舱)、PREMIUM_ECONOMY(高级经济舱)、BUSINESS(商务舱)和 FIRST(头等舱)。
includedAirlineCodes字符串可选逗号分隔的2到3位航空公司代码列表,用于筛选考虑的航空公司。
excludedAirlineCodes字符串可选逗号分隔的2到3位航空公司代码列表,用于排除不考虑的航空公司。
nonStop布尔值可选若为 true,则表示直飞航班;否则默认为 false。
currencyCode字符串可选期望的航班报价货币代码(3位字母)。
maxPrice整数可选每位旅客的最高价格限制。
max整数可选最多获取的航班优惠数量。默认值为 250。

请在下方代码的第 7 至 10 行中填写 originLocationCode、destinationLocationCode、departureDate 和 adults 的值。我们还可以添加任意可选参数以进一步优化搜索条件。然后点击“运行”按钮查看输出结果。

注意: 请确保已保存 ACCESS_TOKEN。如果令牌已过期,请返回 此 课程重新生成。
城市与机场代码、航空公司代码及货币代码,请参考附录。
日期格式请使用 "YYYY-MM-DD"。

1import requests 2import json 3from requests.structures import CaseInsensitiveDict 4from datetime import datetime 5from pprint import pprint 6 7originLocationCode = 'MAD' 8destinationLocationCode = 'PAR' 9departureDate = datetime.today().strftime('%Y-%m-%d') 10adults = 1 11 12url = 'https://test.api.amadeus.com/v2/shopping/flight-offers?' \ 13 'originLocationCode=' + originLocationCode + \ 14 '&destinationLocationCode=' + destinationLocationCode + \ 15 '&departureDate=' + departureDate + '&adults=' + str(adults) 16 17headers = CaseInsensitiveDict() 18headers['Authorization'] = 'Bearer {{ACCESS_TOKEN}}' 19response = json.loads(requests.get(url, headers=headers).text) 20 21pprint(response)

上述代码的输出将返回符合指定行程的航班优惠列表。每条航班信息包含票价、票价详情、航空公司名称、行李额度、出发航站楼及其他相关信息。

按需航班状态查询 API

按需航班状态查询 API 允许旅客获取最新的航班信息,如起飞和到达时间、航站楼与登机口信息。该 API 可提供实时更新,及时提醒旅客可能发生的航班延误。

注意: 此 API 提供的数据来源于航空公司,因此 Amadeus 不对数据的准确性与可靠性承担责任。

我们将使用以下 URL 进行航班状态查询:

https://test.api.amadeus.com/v2/schedule/flights

输入参数

参数类型必填/可选描述
ACCESS_TOKEN字符串必填我们的访问令牌。
carrierCode字符串必填航空公司2到3位字母代码。
flightNumber字符串必填航班号,1到4位数字。
scheduledDepartureDate字符串(日期)必填计划起飞日期。
operationalSuffix字符串可选航空公司为因延误导致起飞日期变更的航班分配的1位操作后缀。例如 A。

请在下方代码的第 6 至 8 行中填写 carrierCode、flightNumber 和 scheduledDepartureDate 的值。如需,也可添加可选参数 operationalSuffix。然后点击“运行”按钮查看输出结果。

注意: 请确保已保存 ACCESS_TOKEN。如果令牌已过期,请返回 此 课程重新生成。
航空公司代码,请参考 附录。
日期格式请使用 "YYYY-MM-DD"。

1import requests 2import json 3from requests.structures import CaseInsensitiveDict 4from pprint import pprint 5 6carrierCode = 'AZ' 7flightNumber = '319' 8scheduledDepartureDate = '2022-06-13' 9 10url = 'https://test.api.amadeus.com/v2/schedule/flights?' \ 11 'carrierCode=' + carrierCode + '&flightNumber=' + flightNumber + \ 12 '&scheduledDepartureDate=' + scheduledDepartureDate 13 14headers = CaseInsensitiveDict() 15headers['Authorization'] = 'Bearer {{ACCESS_TOKEN}}' 16response = json.loads(requests.get(url, headers=headers).text) 17 18pprint(response)

上述代码的输出将提供航班的最新起飞与到达时间、实时延误状态及其他航班信息。

机场与城市搜索

机场与城市搜索 API 允许我们通过关键词搜索城市和机场。搜索结果按每年进出该城市或机场的旅客数量排序,并包含每个地点的详细信息。这些信息包括 IATA 代码、时区以及地理坐标。

注意: 此 API 仅提供每周有固定商业航班数量的机场信息,不包含任何军事或私人机场。

我们将使用以下 URL 进行机场与城市搜索:

https://test.api.amadeus.com/v1/reference-data/locations

输入参数

参数类型必填/可选描述
ACCESS_TOKEN字符串必填我们的访问令牌。
subType字符串数组必填地点的子类型。可用值为 AIRPORT(机场)和 CITY(城市)。
keyword字符串必填代表城市或机场名称或代码开头的关键词。支持字符包括:A-Za-z0-9./:-'()".
countryCode字符串可选2位字母的国家代码。
page[limit]整数可选每页最多显示项目数量。默认值为 10。
page[offset]整数可选请求页面的起始索引。默认值为 0。
sort字符串可选定义排序依据的属性。默认值和唯一可用值为 analytics.travelers.score,即按机场或城市的旅客流量排序,旅客最多的位于结果前列。
view字符串可选返回信息的详细程度。有两个可选值:LIGHT 和 FULL。默认值为 FULL。LIGHT 仅返回 IATACode、name、detailedName、cityName 和 CountryName;FULL 在 LIGHT 基础上额外提供 timeZoneOffset、geoCode、详细地址和 travelers.score。

请在下方代码的第 6 和第 7 行中填写 subType 与 keyword 的值。我们还可以添加任意可选参数以进一步优化搜索。然后点击“运行”按钮查看输出结果。

注意: 请确保已保存 ACCESS_TOKEN。如果令牌已过期,请返回 此 课程重新生成。
国家代码,请参考 附录。

1import requests 2import json 3from requests.structures import CaseInsensitiveDict 4from pprint import pprint 5 6subType = 'AIRPORT' 7keyword = 'PARIS' 8 9url = 'https://test.api.amadeus.com/v1/reference-data/locations?' \ 10 'subType=' + subType + '&keyword=' + keyword 11 12headers = CaseInsensitiveDict() 13headers['Authorization'] = 'Bearer {{ACCESS_TOKEN}}' 14response = json.loads(requests.get(url, headers=headers).text) 15 16pprint(response)

上述代码的输出将返回与关键词匹配的城市或机场列表,包含每个地点的名称、三位 IATA 代码、时区、坐标及其他相关信息。

简介

酒店API