Вы также можете использовать таблицу uritemplate
для преобразования кодов аэропортов в группу URL-адресов, которые затем могут быть переданы в таблицу json
.
Коды аэропортов для URL
Таблица uritemplate
принимает «шаблон» и любое количество значений для заполнения этого шаблона. (См. Также, Шаблон URI черновик).
В этом случае потребности просты, просто введите код аэропорта в нужное место.
select * from uritemplate where
template="http://airportcode.riobard.com/airport/{airport}?fmt=JSON"
and airport in ("SFO", "LAX", "LHR")
( Попробуйте этот запрос в консоли YQL )
Это дает следующий результат (diagnostics
информация удалена для простоты).
Получение результатов JSON по этим URL-адресам
Теперь, когда у нас есть список URL-адресов, достаточно просто использовать таблицу json
для извлечения JSON для каждого из них, используя sub-select . Фактически, мы уже использовали вышеупомянутый подвыбор, распознаваемый синтаксисом in (…)
.
select * from json where url in (
select url from uritemplate
where template="http://airportcode.riobard.com/airport/{airport}?fmt=JSON"
and airport in ("SFO", "LAX", "LHR")
)
( Попробуйте этот запрос в консоли YQL )
Результат на этот раз выглядит так.
Простой запрос
Я большой поклонник псевдонимов запросов YQL (и связанных подстановок переменных , таких как @var
), которые могут предоставить вам удобные конечные точки для доступа без необходимости встраивать YQL-запрос в URL. Ссылка выше описывает, как их создавать, и в результате вы можете получить YQL-запрос, подобный приведенному ниже.
select * from json where url in (
select url from uritemplate where
template="http://airportcode.riobard.com/airport/{airport}?fmt=JSON"
and airport in (@ap)
)
С помощью псевдонима запроса (я назвал его airports
) запрос может быть доступен через URL-адрес, подобный приведенному ниже, и может легко изменять или добавлять больше / меньше кодов аэропортов.
http://query.yahooapis.com/v1/public/yql/peter/airports?ap=SFO&ap=LHR&ap=BOB
( Перейдите туда . Примечание. Я могу удалить этот псевдоним без уведомления.)
Чтение: