2015-10-30 2 views
0

Я начинаю сизбежать символов в JSON данных

mentions = GET(final_url, sig) 
    json = content(mentions) 

Мой код аварии на следующей строке, которая

json2 = jsonlite::fromJSON(toJSON(json)) 

Давать ошибку ...

Error: lexical error: invalid character inside string. 
     Foundation and 42nd President of the United States. Follow 
       (right here) ------^ 

Я имею дело с некоторыми данными JSON. Один маленький кусочек выглядит так. То есть, это результат моей переменной json.

Lots of JSON before this.... 

    $statuses[[99]]$retweeted_status$user$location 
    [1] "New York, NY" 

    $statuses[[99]]$retweeted_status$user$description 
    [1] "Founder, Clinton Foundation and 42nd President \003of the United    States. Follow @clintonfdn for \003more on my work around the world." 

    $statuses[[99]]$retweeted_status$user$url 
    [1] "http://t.co/gI8TIlAJHk" 

Как вы можете видеть, в одной из частей данных JSON встроен символ escape \ 003.

Я имею дело с сотнями частей хорошей информации в одном файле, но это может произойти в любом случае, думая об этом сейчас. На этот раз это произошло в «описании», но это могло произойти в чириканье, в местоположении, в описании и т. Д.

Есть ли способ «очистить» escape-символы от JSON, прежде чем пытаться сделать jsonlite :: fromJSON (toJSON()), чтобы избежать моего сбоя кода здесь?

+0

Один из моих текстовых редакторов (на Mac) имеет «удалить символы NonASCII». Вы можете попробовать передать свой JSON-файл через такой шаг редактирования. –

ответ

0

Вы можете попробовать Somthing так:

json2 <- gsub("[\001-\026]*", "", json) 

Вот простой «тест стратегии»

> gsub("[\003-\005]*", '', "\003\004\005\027abc") 
[1] "\027abc" 

Если вам нужен лучший тест, вы должны размещать вывод dput(head(json)).

+0

Спасибо за предложение! Я попытался преобразовать свой оригинал перед преобразованием json. То есть, я сделал: json = gsub ("[\ 001- \ 026] *", "", json), чтобы переписать мою json-переменную до того, как я сделал json2 = jsonlite :: blahblahblah. Выполнение вашей идеи дает мне «Ошибка в toJSON (json): не удается избежать строки. String не utf8» – Jibril

+0

Чтобы добавить, я попытался выполнить dput (head (json)) в соответствии с запросом. Окружающая среда R отключается и только частично отображает ее. Я до сих пор не знаком с этим, поэтому я не могу его предоставить. Я думаю, что вы на чем-то пытаетесь. Будет исследовать преобразование его в UTF8. – Jibril

Смежные вопросы