如何在Logic App中从解析后的JSON动态生成排除指定列的CSV
动态生成排除DistributionList列的CSV方案
1. 确保CSV已转为动态JSON数组
假设你已经通过Parse JSON动作(使用{}作为Schema实现动态解析),将Blob中的CSV转换为了JSON数组,后续操作基于该数组展开。
2. 提取并过滤目标列名
添加一个Compose动作(命名为过滤后的列名),使用以下表达式获取所有列名并排除DistributionList:
filter(keys(first(body('Parse_JSON'))), item() ne 'DistributionList')
该表达式先提取JSON数组第一行的所有键(即原CSV的列名),再过滤掉DistributionList项,得到需要保留的列名数组。
3. 动态构造每行数据(保留目标列)
添加一个Select动作,设置From为你的JSON数组(即body('Parse_JSON')),然后选择输入整个映射,填入以下表达式:
reduce(outputs('过滤后的列名'), {}, (current, item) => setProperty(current, item, items('Select')[item]))
这个表达式会遍历所有需要保留的列名,从当前行数据中取出对应值,重新构造一个不含DistributionList的对象。
4. 生成最终CSV
添加Create CSV table动作,设置From为body('Select'),即可动态生成仅包含过滤后列的CSV。
补充说明
- 如果你的JSON数组来自其他动作(比如Compose),只需将表达式中的
body('Parse_JSON')替换为对应数组的输出/变量即可。 - 若部分行缺失非
DistributionList列,上述逻辑会自动将缺失列设为空值,符合CSV的常规处理规则。
内容的提问来源于stack exchange,提问作者BlakeB9
相关产品推荐
相关产品推荐

