我正在使用Python,正在阅读文档并使用获取请求来搜索在线课程中项目的特定价格下的航班。 我能够成功处理我的请求并返回我需要的数据,但我正在尝试搜索 6 个月内的航班。 现在我正在输入一个静态日期。 我正在输入所有必需的参数,但我似乎找不到任何可以指定出发日期的窗口的地方。 如果能指定“从”和“到”日期就更好了。 文档位于以下 URL。
我在“Models”下唯一能找到的是dateTimeRange,它只允许你搜索输入日期后3天内的内容。 即使这样,无论我如何将其放入参数中,都会告诉我它是“无效的查询参数”。 我需要在 180 天内进行搜索。 我想如果我至少能让这 3 天的窗口发挥作用,我就可以循环 60 次。
想知道是否有人知道在这 6 个月的窗口内进行搜索的更好方法,或者您是否知道如何让此 dateTimeRange 发挥作用。
我尝试输入另一个参数作为“dateTimeRange”:“I3D”。
我尝试过“dateWindow”:“I3D”。
我已经尝试过了 “日期时间范围”:{ “日期”:“2024-07-04”, “日期窗口”:“I3D” }.
都给我相同的“无效查询参数”。
下面是我正在使用的正确返回航班数据的代码,但我尝试添加上述参数但没有成功。
import requests
class FlightSearch:
def __init__(self):
self.iata_departure_code = "SAC"
self.bearer_token = ""
self.flight_response = {}
def authenticate(self):
auth_token_endpoint = "https://test.api.amadeus.com/v1/security/oauth2/token"
api_key = "xxxxxx"
api_secret = "xxxxxxx"
header = {
"Content-Type": "application/x-www-form-urlencoded",
}
parameters = {
"grant_type": "client_credentials",
"client_id": api_key,
"client_secret": api_secret,
}
response = requests.post(url=auth_token_endpoint, headers=header, data=parameters)
data = response.json()
self.bearer_token = data["access_token"]
return self.bearer_token
def search_flights(self):
flight_offers_endpoint = "https://test.api.amadeus.com/v2/shopping/flight-offers"
header = {
"Authorization": f"Bearer {self.authenticate()}"
}
parameters = {
"originLocationCode": self.iata_departure_code,
"destinationLocationCode": "DUB",
"departureDate": "2024-07-04",
"adults": 1,
"currencyCode": "USD",
"maxPrice": 2000,
"max": 20,
}
flight_response = requests.get(url=flight_offers_endpoint, params=parameters, headers=header)
return flight_response.json()
经过大量挖掘和阅读其他学生的评论后,我发现教师为我们设置的任务在这个端点上是不可能的。 即使在她的解决方案代码中,也无法获取出发日期范围,只能使用 1 个出发日期。 我将在 https://developers.amadeus.com/self-service/category/flights/api-doc/flight-cheapest-date-search/api-reference 尝试另一个 API 端点,它确实允许一系列日期。 我将更改项目以更好地适应所需的最终结果。