как получить таблицу данных из ответа JSON

#r #json #dataframe

#r #json #фрейм данных

Вопрос:

Я использую API для получения данных. Ответ в формате JSON. На данный момент я использовал следующие шаги.

 s2 <- GET("https://api2.elasticgrid.com/api/v1/analytics/vendor/partnerengagement/advanced/all") 

char <- rawToChar(s2$content)
  

Я получаю вывод в виде

 char 

[1] "{nt"data":  [ntt{"Entity Type":"transfer_fund","Entity ID":"136023000000199105","Reference Number":"","Transaction Number":"6","Transaction Amount (BCY)":"INR 2,600.00","Account ID":"136023000000000361","Debit or Credit":"debit","Transaction Date":"15 Apr 2016","Currency Code":"INR","Tax ID":"","Taxable Amount (BCY)":"INR 0.00","Accrual Transaction ID":"136023000000199113","Transaction Amount":"-INR 2,600.00","Customer ID":"","Vendor ID":"","Transaction Amount (FCY)":"INR 2,600.00","Taxable Amount (FCY)":"INR 0.00","Last Modified Time":"2016-05-17 09:38:27","Transaction ID":"136023000000199107","Reference No.":"","Project ID":"","Account Name":"Petty Cash","Account Type":"Cash"}.....
  

Как преобразовать это в таблицу данных?

Спасибо.

Комментарии:

1. Не забудьте поместить строки вашего кода в блоки кода

2. @xwhitelight Я этого не понял, если возможно, можете ли вы объяснить на примере?

3. Поместите свой код в тройные обратные ссылки («), поскольку я только что отредактировал ваш пост.

4. Вопрос на самом деле не имеет ничего общего с machine-learning — пожалуйста, не спамите нерелевантные теги (удалены).

Ответ №1:

Я не могу получить доступ к адресу, но для чтения JSON в объект R используйте fromJSON() функцию из jsonlite пакета:

 data <- jsonlite::fromJSON(char)
  

Обновить:
В файле есть проблемы с некоторыми специальными символами. Сначала вам нужно их заменить:

 char <- gsub("t", " ", char, fixed = T) # ideally we need to replace tab characters in strings to 't' but it's not possible to do that since it'd replace tab characters outside strings as well and cause problems
char <- gsub("\'", "'", char, fixed = T)
data <- jsonlite::fromJSON(char)$data
  

Комментарии:

1. Я получаю эту ошибку ответа: лексическая ошибка: недопустимый символ внутри строки. , «Ссылка нет.»:»07/04/2018 ATM WDL»,»Идентификатор проекта»:»»,»Acc (прямо здесь) ——^

2. Поскольку у меня нет данных, я не могу указать на ошибку.

3. Если данных мало, отредактируйте свой код с помощью объекта full char или запишите его в файл и загрузите, если он большой. Я проверю

4. Спасибо. Я не смог загрузить файл здесь. Я отправил письмо. Пожалуйста, взгляните на это.

5. @user12490809 Не копируйте свой вывод R, я не могу воссоздать с его помощью символьный объект. Используйте следующие строки для записи: fileConn<-file("output.txt"); writeLines(char, fileConn); close(fileConn)