如何在Google Colab中通过Amadeus酒店API获取指定城市酒店代码?
解决Amadeus API获取城市酒店代码及查询酒店信息问题
你当前的代码存在两个核心问题:
- 错误调用接口:
hotel_offers_search是用来查询指定酒店的报价信息,而非获取城市酒店列表; - 缺少必填参数:
hotel_offers_search要求传入checkInDate和checkOutDate,缺失会触发参数错误。
下面分两步实现你的需求:
1. 获取指定城市的酒店代码
使用Amadeus的reference_data.locations.hotels.by_city接口,传入城市IATA代码(比如巴黎是PAR)即可获取该城市的酒店列表及对应的hotelId:
!pip install amadeus from amadeus import ResponseError, Client # 初始化客户端(替换为你的真实凭证) amadeus = Client( client_id='你的Client ID', client_secret='你的Client Secret' ) try: # 获取巴黎(PAR)的酒店列表,可替换为目标城市的IATA代码 city_hotels = amadeus.reference_data.locations.hotels.by_city.get( cityCode='PAR', radius=5, # 可选:搜索半径(公里) radiusUnit='KM' # 可选:半径单位 ) # 遍历输出酒店名称和对应代码 for hotel in city_hotels.data: print(f"酒店名称: {hotel['name']}, 酒店代码: {hotel['hotelId']}") except ResponseError as error: print(f"请求错误: {error}")
2. 查询指定酒店的日期报价信息
拿到目标酒店的hotelId后,调用hotel_offers_search接口并补充入住/退房日期参数:
try: # 替换为你获取到的hotelId,以及实际入住退房日期 hotel_offers = amadeus.shopping.hotel_offers_search.get( hotelIds='RTPAR001', adults='2', checkInDate='2024-10-01', checkOutDate='2024-10-05' ) # 打印酒店报价详情 print(hotel_offers.data) except ResponseError as error: print(f"请求错误: {error}")
关键注意事项
- 城市IATA代码:可通过搜索目标城市的IATA代码获取(比如北京是
PEK,上海是PVG); - 凭证替换:必须将代码中的
client_id和client_secret替换为你在Amadeus开发者平台申请的真实凭证; - 日期格式:必须使用
YYYY-MM-DD格式,且退房日期需晚于入住日期。
内容的提问来源于stack exchange,提问作者devtr
相关产品推荐
相关产品推荐

