You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Logic Apps中将CSV文件读取并转换为数组

Azure Logic Apps 读取CSV文件为数组格式操作指南

方案1:使用内置「解析CSV」操作(推荐,适配所有主流Logic Apps版本)

  • 第一步:通过对应的存储连接器(Azure Blob Storage、OneDrive、SFTP等)执行获取文件内容操作,读取目标CSV文件,得到二进制格式的文件主体
  • 第二步:使用表达式将二进制内容转为明文字符串,通用表达式为 base64ToString(上一步获取文件内容的输出主体),如果CSV为非UTF-8编码,替换为对应解码函数即可
  • 第三步:搜索并添加「解析CSV」内置操作,将上一步得到的明文字符串填入CSV内容输入项
    • 若CSV首行是表头,无需额外配置,操作会自动识别表头作为输出对象的键名
    • 若CSV无表头,开启自定义表头开关,按列顺序填写自定义表头即可
  • 操作执行完成后,输出的body字段就是结构化的数组格式,每个数组元素对应CSV的一行数据

方案2:手动拆分实现(适配无内置解析操作的老旧版本)

如果你的Logic Apps实例没有内置解析CSV操作,可以通过表达式自行拆分生成数组:

  • 前置步骤同方案1,先将CSV文件转为明文字符串,存入字符串类型变量csvContent
  • 按换行符拆分CSV为行数组,表达式:split(variables('csvContent'), decodeUriComponent('%0A')),如果是Windows格式的CSV,换行符替换为decodeUriComponent('%0D%0A')
  • 处理表头:取行数组首个元素first(行数组),按逗号拆分得到表头数组:split(first(行数组), ',')
  • 初始化一个数组类型变量csvResult用于存储最终结果
  • 添加For each循环,遍历范围为跳过首行后的所有行数据:skip(行数组, 1)
    • 循环内部将当前行按逗号拆分得到列值数组:split(items('For_each'), ',')
    • 通过select操作或setProperty函数,将表头数组的元素作为键、列值数组元素作为值,生成单行JSON对象
    • 将生成的JSON对象追加到csvResult变量中

快速获取非结构化行数组表达式

如果你不需要键值对结构,只需要每行内容组成的数组,可以直接在编写操作中填入以下表达式:

take(
  skip(
    split(base64ToString(triggerBody()?['Content']), decodeUriComponent('%0A')),
    1
  ),
  sub(length(split(base64ToString(triggerBody()?['Content']), decodeUriComponent('%0A'))), 1)
)

上述表达式会自动跳过首行表头,直接返回所有数据行组成的数组,可根据实际场景调整是否保留首行

注意事项

  • 如果CSV内容中包含引号包裹的带逗号的字段,仅可使用方案1的内置解析操作,手动拆分方案会出现字段错位问题
  • 处理体积超过100MB的CSV文件时,需要提前开启存储连接器的分块下载配置,避免超出工作流单操作负载上限

内容的提问来源于stack exchange,提问作者D Dumpling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:45:04