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

在Azure Data Factory中基于Lookup输出构建字典对象的可行性咨询

在Azure Data Factory中构建字典对象的可行方案

你的方案核心思路可以实现,但因为Append活动仅支持数组,所以不能直接用Append来构建对象,需要换用Set Variable结合动态表达式,或者更高效的Data Flow来完成。

方法一:Set Variable + For Each循环(小数据量场景)

  1. 创建Object类型变量:先定义一个Object变量(比如targetDict),初始值设为:
    {"values": {}}
    
  2. 遍历Lookup输出:添加For Each活动,遍历范围设为@activity('Lookup活动名称').output.Value
  3. 更新字典变量:在For Each内部添加Set Variable活动,变量选择targetDict,使用以下动态表达式:
    @json(concat('{"values": ', string(union(variables('targetDict').values, createObject(item().name, item().value))), '}'))
    
    逻辑说明:
    • createObject(item().name, item().value):将当前遍历项的name作为键、value作为值,生成单个键值对对象
    • union(...):把新生成的键值对合并到已有字典的values对象中
    • concat和json:重新拼接成符合目标格式的JSON对象

方法二:Data Flow(大数据量场景,更高效)

如果Lookup返回的数据量较大,用Data Flow处理更高效:

  1. Source活动:选择Lookup的输出作为数据源
  2. Aggregate活动:无需设置分组键,直接添加聚合列(比如命名为values),表达式用:
    collect(map(name, value))
    
    这个表达式会把所有行的name和value转换成键值对并聚合为一个对象
  3. Select活动:调整输出结构,将根字段设置为values,映射到Aggregate生成的values列,最终输出就是目标字典格式
  4. Sink活动:将结果输出到变量、Blob存储或后续活动需要的位置

原始Lookup输出

"Value":[
        {
            "name": "key1",
            "value": "value1"
        },
        {
            "name": "key2",
            "value": "value2"
        }
        ]

目标字典对象

{
  "values": {
    "key1": "value1",
    "key2": "value2"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:15:42