Amadeus Python SDK机场查询异常:经纬度搜布拉格返回慕尼黑机场
问题分析与解决方案
你遇到的问题是因为Amadeus的reference_data.locations.airports接口默认排序规则并非按距离优先,而是可能基于机场运营规模等维度,导致距离更远但规模更大的慕尼黑机场(MUC)被优先返回。布拉格本地的瓦茨拉夫·哈维尔机场(PRG)虽然距离你提供的坐标仅约10公里,却排在结果列表靠后位置,在默认返回结果数量有限的情况下未被展示。
解决方法
调用机场搜索接口时,添加两个关键参数调整返回逻辑:
sort='distance':强制按距离从近到远排序,确保最近的PRG机场排在首位max=5:增加返回结果数量,避免只获取到排序靠前的非目标机场
修改后的代码如下:
from amadeus import Client amadeus = Client( client_id='YOUR_ID', client_secret='YOUR_SECRET') # 调整后的机场搜索测试 response = amadeus.reference_data.locations.airports.get( latitude=50.0755381, longitude=14.4378005, sort='distance', # 按距离排序 max=5 # 返回最多5个结果 ) print(response.data) # 航班搜索测试(保持不变) kwargs_trip_purpose = { "originLocationCode": "PRG", "destinationLocationCode": "SFO", "departureDate": "2024-08-22", # 根据需要修改日期 "returnDate": "2024-08-30", # 根据需要修改日期 "adults": 1, "currencyCode": "USD" } offers_search_output = amadeus.shopping.flight_offers_search.get(**kwargs_trip_purpose).data
验证效果
修改后,返回结果的第一个条目应该就是布拉格的PRG机场,后续条目会是距离递增的其他周边机场。
内容的提问来源于stack exchange,提问作者Akella Niranjan
相关产品推荐
相关产品推荐

