PowerQuery: цикл for для всех элементов - PullRequest
0 голосов
/ 05 января 2019

У меня есть структурированный файл json, содержащий список элементов. Я хотел бы преобразовать все элементы (которые также имеют структуру) в табличный формат. Я могу сделать это вручную из графического интерфейса PowerQuery для одного элемента; пример кода ниже.

let
    Source= 
Json.Document(Web.Contents("<source_address>")),
    elements = Source[elements],
    elements1 = elements{0},
    #"Converted into table" = Record.ToTable(elements1)
in
    #"Converted into table"

Я бы хотел перебрать все элементы (от элементов {0} до элементов {x}) и сохранить их в одной выходной таблице Excel. Все элементы имеют одинаковую структуру (столбцы)

1 Ответ

0 голосов
/ 05 января 2019

Было бы полезно увидеть пример JSON, поскольку сложно с уверенностью сказать, не глядя на его структуру. Я только что использовал некоторую фиктивную строку JSON, которая, как я предполагаю, напоминает вашу (с точки зрения структуры).

let
    //Source = Json.Document(Web.Contents("<source_address>")),
    Source = Json.Document("{""elements"": [{""someKey1"": ""someValue1""}, {""someKey2"": ""someValue2""}], ""someOtherKey"": ""cat""}"),
    elements = Source[elements],
    transformList = List.Transform(elements, Record.ToTable),
    appended = Table.Combine(transformList)
in
    appended

Если вы скопируете и вставите вышеприведенное в Advanced Editor, замените вторую Source = ... на ту, которая указана в исходном коде, вы сможете проверить, дает ли она то, что вам нужно.


Edit:

Я думаю, что с учетом URL, который вы указали, приведенный ниже код избавит вас от поворота таблицы позже и даст желаемый результат.

let
    Source = Json.Document(Web.Contents("https://fantasy.premierleague.com/drf/bootstrap-static")),
    elements = Source[elements],
    toTable = Table.FromRecords(elements)
in
    toTable

Что дает мне следующее:

Output

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...