Carregando um arquivo json no Power Query

7

Estou tentando carregar um arquivo JSON que obtive do data.gov para poder fazer uma manipulação, mas não consigo descobrir como fazer com que o Power Query converta o arquivo JSON em um formato tabular.

Existe uma maneira de converter JSON em uma tabela no Power Query sem escrever uma consulta personalizada?

    
por CountZero 23.09.2015 / 20:46

1 resposta

7

Os dados JSON geralmente aparecem como Registros dentro de listas dentro de registros (e outras variações). Normalmente você pode usar a interface do usuário do PQ para expandir esses objetos sem escrever código.

Veja um endpoint JSON de amostra: link

Depois de executar o PQ "From Web", o próximo passo é clicar no botão Record Tools / Convert / Into Table na faixa de opções PQ.

Isso retorna uma única linha, com a segunda coluna (Valor) contendo uma lista. Clique no botão de expansão ao lado de "Valor" para expandir a lista.

Isso retorna várias linhas, com cada segunda coluna (Value) agora contendo um registro. Expanda o registro para obter as colunas de dados em um formato tabular.

Observe que há mais detalhes nesse layout JSON específico - veja a coluna Value.prizes na extrema direita. Suas etapas exatas podem variar, dependendo da sua entrada JSON e de seus requisitos de saída.

Aqui está o código completo para chegar a uma tabela - cada etapa foi gerada clicando na interface do usuário.

let Source = Json.Document(Web.Contents("http://api.nobelprize.org/v1/laureate.json")), #"Converted to Table" = Record.ToTable(Source), #"Expanded Value" = Table.ExpandListColumn(#"Converted to Table", "Value"), #"Expanded Value1" = Table.ExpandRecordColumn(#"Expanded Value", "Value", {"id", "firstname", "surname", "born", "died", "bornCountry", "bornCountryCode", "bornCity", "diedCountry", "diedCountryCode", "diedCity", "gender", "prizes"}, {"id", "firstname", "surname", "born", "died", "bornCountry", "bornCountryCode", "bornCity", "diedCountry", "diedCountryCode", "diedCity", "gender", "prizes"}) in #"Expanded Value1"

    
por 24.09.2015 / 03:07