Декодировал Base64 на фрейм данных - PullRequest
1 голос
/ 09 апреля 2019

Из API я получаю набор данных в кодировке Base64. Я использую RCurl::base64 для его декодирования, но он сериализован. Как мне преобразовать его в фрейм данных?

После расшифровки моего возвращения я получаю длинную текстовую строку с разделенными точкой с запятой данными и именами столбцов. Выглядит так:

[1] "\"lfdn\";\"pseudonym\";\"external_lfdn\";\"tester\"\r\n\"50\";\"434444345\";\"0\";\"0\"\r\n\"91\";\"454444748\";\"0\";\"0\"\r\n\

Вы можете увидеть структуру с простым cat(x):

"lfdn";"pseudonym";"external_lfdn";"tester"
"50";"434444345";"0";"0"
"91";"454444748";"0";"0"
"111";"444444141";"0";"0"

Я пробовал очевидное unserialize(x), но получаю:

R> Error in unserialize(enc) : 
R> character vectors are no longer accepted by unserialize()

Что бы я ни бросал в него ... Я могу записать объект на диск и прочитать его обратно, но я предпочитаю избегать этого.

Было бы здорово получить данные из сериализованной текстовой строки в кадр данных с именами столбцов!

1 Ответ

1 голос
/ 09 апреля 2019

Это должно сработать:

read.table(text=j, header = TRUE, sep = ";")
#   lfdn pseudonym external_lfdn tester
# 1   50 434444345             0      0
# 2   91 454444748             0      0

Примечание. Я скопировал вашу строку сверху, она не содержит последней строки с 111 в ней.

...