要解决Amadeus API不显示可用的直飞航班的问题,可以尝试以下代码示例:
import amadeus
amadeus = amadeus.Client(client_id='YOUR_CLIENT_ID', client_secret='YOUR_CLIENT_SECRET')
response = amadeus.shopping.flight_offers_search.get(
originLocationCode='NYC',
destinationLocationCode='LAX',
departureDate='2022-12-01',
nonStop=True # 设置为True以仅获取直飞航班
)
if response.status_code == 200:
flights = response.data
if len(flights) > 0:
print("可用的直飞航班:")
for flight in flights:
print(flight['id'], flight['offerItems'][0]['price']['total'], flight['offerItems'][0]['services'][0]['segments'][0]['flightSegment']['carrierCode'], flight['offerItems'][0]['services'][0]['segments'][0]['flightSegment']['number'])
else:
print("没有可用的直飞航班。")
else:
print("API请求失败。")
请确保将YOUR_CLIENT_ID和YOUR_CLIENT_SECRET替换为实际的Amadeus API凭证。在这个示例中,我们使用了Amadeus Python SDK来进行API请求。
关键是在API请求中设置nonStop=True以仅获取直飞航班。如果response.status_code为200且返回的航班列表flights不为空,则可以将这些航班信息打印出来。如果flights为空,则表示没有可用的直飞航班。
请注意,具体的Amadeus API调用可能因版本和订阅计划的不同而有所不同,上述代码示例仅供参考。您可以根据自己的情况进行适当的修改。