【发布时间】:2021-04-27 22:19:08
【问题描述】:
我想在 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"],
但现在我想动态地做这一切。
【问题讨论】:
-
你能提供你想要的样本输入和输出吗?
标签: powerquery m