[R-br] Ler arquivo JSON com diversos outros JSONs dentro dele

Yury Duarte yurynepomuceno em gmail.com
Segunda Junho 25 17:49:43 -03 2018


Rodrigo,

segundo os testes que fiz, num arquivo com número reduzido de JSONs (testei
com 4) dentro de um outro JSON, a solução dos colchetes funcionou e me
retornou uma lista com 4 campos, onde cada campo continha as informações de
todos os JSONs.
Entretanto, quando apliquei essa mesma lógica para um dos meus arquivos na
integra (cada arquivo tem, em média, 200 mil linhas...isso deve dar uns 10
mil JSONs diferentes), o comando me retorna o mesmo erro de antes:
Error in parse_con(txt, bigint_as_char) :
  parse error: after array element, I expect ',' or ']'
          uantity": 5         } }      },       {         "_index": "c
                     (right here) ------^

Será que existe alguma solução praticável no R para trabalhar com um
arquivo dessa magnitude?

Mais uma vez, agradeço a atenção de todos!

Att

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP

Em 25 de junho de 2018 17:21, Rodrigo Ângelo <drigo.angelo em gmail.com>
escreveu:

> Corrigindo: Yury.
>
> Escrevi seu nome errado. Me desculpe.
>
> On Mon, Jun 25, 2018 at 5:19 PM Rodrigo Ângelo <drigo.angelo em gmail.com>
> wrote:
>
>> Oi Yuri,
>>
>> Tem algum outro sistema que gera esse arquivo para você, ou você tem
>> controle de como ele é gerado?
>>
>> Não sei se é a solução que você procura, mas talvez colocar [ no início
>> do arquivo e ] no final pode fazer a biblioteca jsonlite reconhecer como
>> uma lista de objetos.
>>
>> Sds,
>> Rodrigo
>>
>> On Mon, Jun 25, 2018 at 2:44 PM Yury Duarte via R-br <
>> r-br em listas.c3sl.ufpr.br> wrote:
>>
>>> Boa tarde colegas listeiros, como vão?
>>>
>>> Ultimamente venho encontrando certa dificuldade para trabalhar com
>>> arquivos JSON que contém outros JSON dentro deles.
>>> Sempre que precisei trabalhar com esse tipo de arquivo utilizei a
>>> expressão:
>>>
>>> library(jsonlite)
>>> raiz= ('C:\\Users\\Desktop\\')
>>> a = fromJSON(paste0(raiz,'document.json'))
>>>
>>> Dessa forma eu obtenho uma lista e consigo selecionar os valores dos
>>> campos que quero.
>>> Mas quando tento aplicar a mesma lógica para um JSON que contém diversos
>>> outros JSONs, o código quebra e retorna:
>>> Error in parse_con(txt, bigint_as_char) : parse error: trailing garbage
>>>           99809265137         }       },       {         "_index": "ch
>>>                      (right here) ------^
>>>
>>> Meu interesse é acessar apenas as informações de alguns campos desses
>>> JSONs e construir uma tabela, onde nas colunas eu terei os campos que
>>> desejo e nas linhas eu terei os valores de cada um dos JSONs.
>>> A seguir, estou colando no corpo da mensagem um pedaço de um desses
>>> arquivos que estou tentando lidar no R.
>>>
>>> Desde já, agradeço pela ajuda e atenção.
>>>
>>> Att
>>>
>>>
>>> {
>>>         "_index": "busca",
>>>         "_type": "data_point",
>>>         "_id": "interpolation:699646|mgper-0-
>>> 20|2018-06-22|5x21sxq1km3b",
>>>         "_score": 1,
>>>         "_source": {
>>>           "name": "Mg% 0-20",
>>>           "data_type": "interpolation",
>>>           "attribute": "Mg%",
>>>           "farm_id": 22706,
>>>           "depth": "0-20",
>>>           "location": [
>>>             -48.91500982855756,
>>>             -22.293821593345108
>>>           ],
>>>           "inceres_id": 699646,
>>>           "date_created": "2018-06-22T14:06:13.587631-03:00",
>>>           "slug": "mgper-0-20",
>>>           "quantity": 10.565964698791504
>>>         }
>>>       },
>>>       {
>>>         "_index": "busca",
>>>         "_type": "data_point",
>>>         "_id": "interpolation:701809|ph-20-40|2018-06-22|5x21uc94cc55",
>>>         "_score": 1,
>>>         "_source": {
>>>           "name": "ph 20-40",
>>>           "data_type": "interpolation",
>>>           "attribute": "ph",
>>>           "farm_id": 22706,
>>>           "depth": "20-40",
>>>           "location": [
>>>             -48.90241501215151,
>>>             -22.28980716917012
>>>           ],
>>>           "inceres_id": 701809,
>>>           "date_created": "2018-06-22T14:06:35.183784-03:00",
>>>           "slug": "ph-20-40",
>>>           "quantity": 4.381259918212891
>>>         }
>>>       },
>>>       {
>>>         "_index": "busca",
>>>         "_type": "data_point",
>>>         "_id": "interpolation:699646|mgper-0-
>>> 20|2018-06-22|5x21sz1rcjp5",
>>>         "_score": 1,
>>>         "_source": {
>>>           "name": "Mg% 0-20",
>>>           "data_type": "interpolation",
>>>           "attribute": "Mg%",
>>>           "farm_id": 22706,
>>>           "depth": "0-20",
>>>           "location": [
>>>             -48.915268161911925,
>>>             -22.289490533842073
>>>           ],
>>>           "inceres_id": 699646,
>>>           "date_created": "2018-06-22T14:06:13.587631-03:00",
>>>           "slug": "mgper-0-20",
>>>           "quantity": 8.669662475585938
>>>         }
>>>       },
>>>       {
>>>         "_index": "busca",
>>>         "_type": "data_point",
>>>         "_id": "interpolation:701809|ph-20-40|2018-06-22|5x21uc3097d7",
>>>         "_score": 1,
>>>         "_source": {
>>>           "name": "ph 20-40",
>>>           "data_type": "interpolation",
>>>           "attribute": "ph",
>>>           "farm_id": 22706,
>>>           "depth": "20-40",
>>>           "location": [
>>>             -48.904161243141765,
>>>             -22.289829735373146
>>>           ],
>>>           "inceres_id": 701809,
>>>           "date_created": "2018-06-22T14:06:35.183784-03:00",
>>>           "slug": "ph-20-40",
>>>           "quantity": 4.352087497711182
>>>         }
>>>       }
>>>
>>>
>>> Yury Duarte
>>> Engenheiro Agrônomo - ESALQ/USP
>>> _______________________________________________
>>> R-br mailing list
>>> R-br em listas.c3sl.ufpr.br
>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>>> código mínimo reproduzível.
>>
>>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20180625/b0436010/attachment.html>


Mais detalhes sobre a lista de discussão R-br