Как извлечь данные API только за текущий день? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть следующий фрагмент кода, который дает мне всю информацию о IBM в формате словаря, но он включает в себя одну и ту же информацию для многих разных дат, далеко позади текущей даты.Как мне извлечь информацию только для ТЕКУЩЕЙ даты?

on mouseUp
   put url("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=YPMBUVQ8AJXX1HQP") into field "myData"
end mouseUp

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Вы получаете JSON из сервиса, поэтому я считаю, что лучшее решение - это преобразовать JSON в массив.Вы можете сделать это с помощью ImportJSON или JSON, например:

put url("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=YPMBUVQ8AJXX1HQP") into tData
put JSONToArray(tData) into tArr   
# Get current date as ISO-date!
put the date into tDate
convert tDate to dateItems
put item 1 to 3 of tDate into tDate
replace "," with "-" in tDate
# Now get the current item in the array
put tArr["Time Series (Daily)"][tDate] into tToday
# To view in a normal field you can use combine 
combine tToday with return and tab
put tToday into field "myData"

В долгосрочной перспективе я действительно думаю, что вам будет намного легче работать, если вы преобразуете JSON во что-то более управляемое, прежде чем продолжить.

0 голосов
/ 11 декабря 2018

Хитрость в том, чтобы разобрать каждый небольшой блок текста по дате.«ItemDelimiter» может быть установлен на любую строку, и, глядя на содержимое вызова url, я бы использовал строку «{,».

Теперь вы можете, например:

 on mouseUp
   put url("https://www.alphavantage.co/query function=TIME_SERIES_DAILY&symbol=IBM&apikey=YPMBUVQ8AJXX1HQP") into field "myData"

   set the itemDel to "},"
   answer item 6 of fld "myData"
end mouseUp

Вы можете собрать каждый предмет по мере необходимости и обработать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...