Я пытаюсь собрать стоимость туров и мероприятий, используя API Python с Amadeus. Я прочитал пару статей, в которых собирались цены на путевки в Германию с использованием Amadeus Germany GmbH (которая, как я предполагаю, имеет тот же API и доступность данных). Однако, несмотря на поиск множества примеров, мне не удалось узнать стоимость туров и мероприятий. Для расчета стоимости авиабилетов (или отелей) я запускаю следующий скрипт:
import pandas as pd
from amadeus import Client
amadeus_api = 'MY_API'
amadeus_secret = 'SECRET_CODE'
amadeus = Client(client_id = amadeus_api,
client_secret = amadeus_secret)
flights = amadeus.shopping.flight_offers_search.get(originLocationCode = 'airport_departure', destinationLocationCode = 'airport_arrival',departureDate = '2024-07-01',
adults = 1).data
Однако, когда дело доходит до туров и мероприятий, единственный код, который мне удалось найти, это следующий (или аналогичные варианты):
amadeus.shopping.activity('56777').get().result
Однако приведенный выше код получает лишь некоторую информацию об активности. Я хотел бы извлечь цену и иметь возможность установить даты. В идеале хотелось бы узнать, идет ли тур в комплекте с авиабилетами.
Знаете ли вы, можно ли получить такую информацию об Амадее? Если да, то кто-нибудь знает, как это сделать?






Если вы проверите ссылку API на действия, вы увидите, что данные о времени не предоставляются. Поэтому невозможно извлечь это из результатов API. Вероятно, вы могли бы проанализировать сайт со ссылками на бронирование, чтобы получить это, но это сложно и это другая тема.
Предположим, вы загружаете деятельность в Мадриде в фрейм данных, после чего можете легко извлечь информацию о ценах следующим образом:
import pandas as pd
from amadeus import Client, ResponseError
amadeus_api = 'KEY'
amadeus_secret = 'SECRET'
if __name__ == '__main__':
amadeus = Client(client_id=amadeus_api,
client_secret=amadeus_secret)
try:
# this call is taken from the code examples
activities = amadeus.shopping.activities.get(latitude=40.41436995, longitude=-3.69170868)
df = pd.DataFrame(activities.data)
except ResponseError as error:
print(error)
exit(1)
excerpt = df[['name', 'price']].head()
print(excerpt.to_string())
Чтобы получить данные о ценах на определенное действие, как в вашем примере, вам нужно получить доступ к result.data.price, например: activity_price = amadeus.shopping.activity('56777').get().result['data']['price'].
Результирующий словарь цен пуст, что означает, что для этого конкретного действия в вашем примере информация о ценах недоступна.