Как обновить файл JSON из R Shiny? - PullRequest
1 голос
/ 23 октября 2019

У меня есть этот код:

# Preloads ---- 

library(shiny)
library(dplyr)
library(xlsx)
library(jsonlite)
library(httr)
library(svDialogs)
library(downloader)
params <- readLines("params.json")


# end preloads ---- 


# Define server logic 
shinyServer(function(input, output) {
    my_params <- reactive({ 
        my_params[4] <- paste0("          \"time_period\":[{\"start_date\":\"", 
                               Sys.Date()-10*365, "\",\"end_date\":\"", 
                               Sys.Date(), "\"}],")
        my_params[5] <- paste0("          \"recipient_search_text\": [\"",
                               as.character(input$the_duns), "\"]")
    })    


    observeEvent(input$get_api, { 

        writeLines(my_params,"params.json")

    })  

    the_data <- reactive({ 
        # the excel workbook to download 
        pages<-list()
        url<-"https://api.usaspending.gov/api/v2/download/awards"
        API_response <- httr::POST(url, body = upload_file("params.json"))
        stop_for_status(API_response)
        json <- content(API_response, "text",encoding = "UTF-8")
        API_data <- fromJSON(json)

        download(API_data[["url"]], dest="dataset.zip", mode="wb") 
        unzip("dataset.zip", exdir = getwd())
        output <- read.table(unz("dataset.zip", "all_contracts_prime_awards_1.csv"),
                             header=T, quote="\"", sep="," ,fill = TRUE)
        output1 <- read.table(unz("dataset.zip", "all_contracts_prime_awards_1.csv"),
                              header=T, quote="\"", sep="," ,fill = TRUE)

Я пытаюсь прочитать ранее существующий файл JSON, изменить некоторые его части на основе пользовательского ввода, а затем снова записать в файл JSON. Затем я надеюсь использовать этот JSON-файл для вызова API и извлечения данных из zip-файла. Мне нужна помощь, чтобы выяснить, почему мой файл JSON не обновляется с помощью числа из входных данных $ duns. У кого-нибудь есть предложения?

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