我想展开 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;
以及一个扩展表中所有列表的函数
Cn.ExpandAllListsFromTable = (table as table, columns as list) =>
let
expandedListTable = List.Accumulate(columns, table, (state, columnToExpand) =>
Table.ExpandListColumn(state, columnToExpand))
in
expandedListTable;
所有列表现在都是记录,我想动态扩展所有这些记录。
我认为我需要一个 foreach 来迭代列表(这只是 Cn.GetAllColumnsWithType 的记录原因),
Table.ExpandRecordColumn 每个元素及其 Table.ColumnNames 并将其添加到表中,但我不知道该怎么做。
也许你可以帮助我,因为这让我发疯。
干杯
编辑:
我最近打开了一个线程,但我想扩展一个特定的线程,例如
#"SelectItems" = Table.SelectColumns(records,{"$items"}),
#"$items1" = #"SelectItems"{0}[#"$items"],
但现在我想动态地完成这一切。