2017-02-06 6 views
3

У меня есть json на веб-сайте, который я хочу преобразовать в excel, используя опцию power queryfrom web. Но у меня возникла небольшая проблема. Моя json выглядит следующим образом:Json to excel using power query

[ 
    { 
     "id" : 1, 
     "visitors" : 26, 
     "some_number" : 1, 
     "value" : 3500 
    }, 
    { 
     "id" : 2, 
     "visitors" : 21, 
     "some_number" : 5, 
     "value" : 2000 
    } 
] 

но когда я использую from web я получаю это:

enter image description here

я могу углубиться в записи, преобразовать его в таблицу, переставлять и использовать первую строку как заголовок, но затем я получаю только одну строку. Как я могу получить все мои данные в таблице, а не одну строку?

ответ

2

Сначала я бы воспользовался меню List Tools/Transform (оно должно быть автоматически выбрано) и нажмите кнопку , чтобы перейти в таблицу. Это даст вам таблицу с одним столбцом с двумя строками. Затем я нажимаю маленькую кнопку «Развернуть» - она ​​появится в заголовках столбцов, справа от «Столбец 1». Снимите флажок Используйте исходное имя столбца ..., и вы получите таблицу из 4 столбцов и 2 строки.

Вот полный скрипт я сгенерировал:

let 
    Source = Json.Document(File.Contents("C:\Users\Mike.Honey\Downloads\json2.json")), 
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error), 
    #"Expanded Column2" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "visitors", "some_number", "value"}, {"id", "visitors", "some_number", "value"}) 
in 
    #"Expanded Column2" 
+0

Спасибо, работал отлично – kemis

0

Сначала вам нужно преобразовать список в таблицу, затем вы можете развернуть столбец записи и перейти оттуда. Если вам не повезло, вы можете взглянуть на this video, который я создал недавно для аналогичного вопроса.

2

Table.FromRecords() function подходит для этой выборки данных:

let 
    Source = Json.Document("[{""id"": 1, ""visitors"": 26, ""some_number"": 1, ""value"": 3500}, {""id"": 2, ""visitors"": 21, ""some_number"": 5, ""value"": 2000}]"), 
    AsTable = Table.FromRecords(Source) 
in 
    AsTable 

Showing the example query in use in the Query Editor and Advanced Editor interfaces

+0

Спасибо за ответ, но я принял другой, потому что он лучше подходит для моей проблемы :) – kemis