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

如何使用DataWeave 2.0将字符串拆分为带序号的键值对

解决方案:拆分逗号分隔字段为带序号的键值对

可以用Python实现这个需求,以下是完整代码:

import json

# 输入数据
input_data = '''
[
  {
    "Billing_ID": "Default",
    "Product": "License Fee",
    "Region": "EMEA",
    "Actual_Amount": "0,49902.95,0"
  },
  {
    "Billing_ID": "Default",
    "Product": "License Fee",
    "Region": "APAC",
    "Actual_Amount": "0,0,0,0,0"
  }
]
'''

# 解析JSON数据
data = json.loads(input_data)

# 处理每个条目
for item in data:
    # 拆分Actual_Amount字符串为数组
    amounts = item['Actual_Amount'].split(',')
    # 删除原字段
    del item['Actual_Amount']
    # 生成带序号的新字段
    for idx, amount in enumerate(amounts, start=1):
        item[f'Actual_Amount_{idx}'] = amount

# 输出处理后的JSON
print(json.dumps(data, indent=2))

代码说明

  1. 解析输入:将JSON字符串转为Python列表对象,方便后续操作。
  2. 拆分字段:对每个对象的Actual_Amount字段使用split(',')拆分,得到值的数组。
  3. 替换字段:删除原Actual_Amount字段,再遍历拆分后的数组,按从1开始的序号生成新的键名(如Actual_Amount_1),并赋值对应的值。
  4. 输出结果:将处理后的Python对象转回格式化的JSON字符串,得到预期输出。

你之前只将字段转为数组但未得到预期结果,是因为缺少了将数组元素映射为带序号键值对的步骤,上面的代码补全了这部分逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:07:42