Не удается получить значение выходного параметра
Я использую функцию ImportJSON в листах Google для импорта значений данных из AlphaVantage API.
Например, строка запроса: https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=5min&apikey=demo
возвращает:
{
"Meta Data": {
"1. Information": "Intraday (5min) open, high, low, close prices and volume",
"2. Symbol": "MSFT",
"3. Last Refreshed": "2019-02-13 16:00:00",
"4. Interval": "5min",
"5. Output Size": "Compact",
"6. Time Zone": "US/Eastern"
},
"Time Series (5min)": {
"2019-02-13 16:00:00": {
"1. open": "106.8400",
"2. high": "107.0000",
"3. low": "106.7200",
"4. close": "106.7800",
"5. volume": "855430"
},
"2019-02-13 15:55:00": {
"1. open": "106.9100",
"2. high": "106.9350",
"3. low": "106.7800",
"4. close": "106.8300",
"5. volume": "336088"
},
"2019-02-13 15:50:00": {
"1. open": "107.0800",
"2. high": "107.0821",
"3. low": "106.8500",
"4. close": "106.9300",
"5. volume": "279939"
}
}
}
Я хочу отобразить последнее обновленное значение "цена закрытия" в своей ячейке листов Google. Поэтому я использую этот запрос:
IMPORTJSON("https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=acc.ns&interval=1min&apikey=OJATWN8EM09KRWZS", "Time Series (1min)/4. close" )
Но это показывает
Узел не доступен "ошибка.
Может кто-нибудь помочь мне в том, что я делаю неправильно?
1 ответ
OP может быть проще взять ключевые части этого скрипта и избежать xpath. Этот код будет получать JSON из URL-адреса, который передается ему и возвращает массив 4. close
ценности. С помощью массива вы можете добавить значения в электронную таблицу. Это достаточно легко найти, как это сделать с помощью небольшого Google.
function getCloseDataFromURL(url){
var res = UrlFetchApp.fetch(url);
var content = res.getContentText();
var json = JSON.parse(content)["Time Series (5min)"]; //Just get Time Series section...
var data = [];
Object.keys(json).forEach(function(item){ //Get the timestamp keys...
data.push(json[item]["4. close"]); //for each "4. close" item get the value and add it to an array
});
return data; //data is an array of the 4. close values.
}