小编Cra*_*ble的帖子

动态扩展 json 中的所有列表和记录

我想展开 json 响应中的所有列表和记录。列就像例如(这是动态的,也可以是 10 条记录和 5 个列表):

文本、文本、[列表]、[列表]、文本、[记录]、[记录]、字符串、[记录]

我编写了一个函数来获取具有特定类型的所有列

Cn.GetAllColumnsWithType = (table as table, typ as type) as list =>
let
    ColumnNames = Table.ColumnNames(table),
    ColumnsOfType = List.Select(ColumnNames, (name) =>
        List.AllTrue(List.Transform(Table.Column(table, name), (cell) => Type.Is(Value.Type(cell), typ))))
in
    ColumnsOfType;
Run Code Online (Sandbox Code Playgroud)

以及一个扩展表中所有列表的函数

Cn.ExpandAllListsFromTable = (table as table, columns as list) =>
let
    expandedListTable = List.Accumulate(columns, table, (state, columnToExpand) =>
        Table.ExpandListColumn(state, columnToExpand))
in
    expandedListTable;
Run Code Online (Sandbox Code Playgroud)

所有列表现在都是记录,我想动态扩展所有这些记录。

我认为我需要一个 foreach 来迭代列表(这只是 Cn.GetAllColumnsWithType 的记录原因),Table.ExpandRecordColumn 每个元素及其 Table.ColumnNames 并将其添加到表中,但我不知道该怎么做。也许你可以帮助我,因为这让我发疯。干杯

编辑:我最近打开了一个线程,但我想扩展一个特定的线程,例如

#"SelectItems" = Table.SelectColumns(records,{"$items"}),
#"$items1" = #"SelectItems"{0}[#"$items"],
Run Code Online (Sandbox Code Playgroud)

但现在我想动态地完成这一切。

m powerquery

3
推荐指数
1
解决办法
8603
查看次数

标签 统计

m ×1

powerquery ×1