#curl #j
#curl #j
Вопрос:
Я пытаюсь получить CSV-файл из https://www.alphavantage.co / и передайте значения в J для обработки.
Я пробовал httpget и web / gethttp (на основе curl), но столкнулся с обоими, что касается httpget, я не знаю, как передать https в функцию httpget. Я вообще не мог заставить gethttp работать.
ссылка будет выглядеть следующим образом (это демонстрационная ссылка): https://www.alphavantage.co/query ?функция=TIME_SERIES_INTRADAYamp;symbol=MSFTamp;интервал = 5 минут amp;apikey=demoamp;тип данных = csv
моя пробная версия с httpget выдает эту ошибку:
|domain error: httpget
log ;:^:_1 host;(":port);path
Как я могу использовать J для получения онлайн-csv и передачи его в свой код? Спасибо.
Редактировать: это моя платформа
Engine: j901/j64/linux
Beta-c: commercial/2019-04-03T10:18:09
Library: 9.01.03
Qt IDE: 1.8.1/5.5.1
Platform: Linux 64
Installer: J901 install
InstallPath: /home/sam/j901
Ответ №1:
Используя приведенную выше ссылку, для меня в Windows 10 работает следующее:
load 'web/gethttp csv'
Link=: 'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAYamp;symbol=MSFTamp;interval=5minamp;apikey=demoamp;datatype=csv'
fixcsv gethttp Link
┌───────────────────┬────────┬────────┬────────┬────────┬────────┐
│timestamp │open │high │low │close │volume │
├───────────────────┼────────┼────────┼────────┼────────┼────────┤
│2019-04-18 16:00:00│123.3900│123.5000│123.3000│123.3700│1327949 │
├───────────────────┼────────┼────────┼────────┼────────┼────────┤
│2019-04-18 15:55:00│123.4100│123.4800│123.3000│123.3900│931359 │
├───────────────────┼────────┼────────┼────────┼────────┼────────┤
│2019-04-18 15:50:00│123.3250│123.4200│123.2900│123.4100│340777 │
└───────────────────┴────────┴────────┴────────┴────────┴────────┘
...
JVERSION
Engine: j807/j64/windows
Release-d: commercial/2019-03-18T13:21:35
Library: 8.07.25
Qt IDE: 1.7.9s/5.9.6
Platform: Win 64
Installer: J807 install
InstallPath: c:/program files/j64-807
Contact: www.jsoftware.com
Для Linux, похоже, требуется дополнительный набор двойных кавычек, чтобы ссылка была правильно интерпретирована curl
или wget
:
fixcsv gethttp dquote Link
┌───────────────────┬────────┬────────┬────────┬────────┬────────┐
│timestamp │open │high │low │close │volume │
├───────────────────┼────────┼────────┼────────┼────────┼────────┤
│2019-04-18 16:00:00│123.3900│123.5000│123.3000│123.3700│1327949 │
├───────────────────┼────────┼────────┼────────┼────────┼────────┤
...
Двойные кавычки отлично работают и для Windows, поэтому потенциально вы можете просто заключить ссылку в двойные кавычки, и она должна работать на разных платформах.
Комментарии:
1. применяя приведенный выше код (аналогичный моим испытаниям); он выдает пустую строку. Я использую ubuntu с J9b
2. Если я просто попробую raw curl или wget в терминале Ubuntu с этой ссылкой, я тоже получу ошибки (недопустимый apikey или аналогичный). Добавление двойных кавычек вокруг строки, похоже, исправляет ситуацию. Работает внутри J tool. Обновит мой ответ.