必须用循环节点处理用户昵称清洗任务:先配置arraystring类型开始节点,再用“使用数组循环”模式逐项strip、lower、replace并过滤空值,通过“设置变量”累积结果,最后用join拼接为分号分隔字符串。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要用扣子工作流批量处理一组用户昵称,比如清洗格式、统一转小写、过滤空值,最后合并成一行带分号的字符串——这种有顺序依赖、需中间变量参与、每步结果影响下一步的场景,必须用循环节点,不能用批处理节点。
准备数据并配置开始节点
在工作流编辑页点击「+资源」→「开始节点」,打开参数配置面板。输入参数名设为user_names,类型选ArrayString,示例值填[" LEE ","Zhang@123"," ","Wang_456"]。这一步必须用ArrayString类型,【若误选String类型,后续循环体将无法按项遍历,整个流程直接中断】。数组中带空格和特殊字符是故意设计的,用于验证清洗逻辑是否生效。
添加循环节点并选择循环模式
从节点库拖入「循环」节点,连接开始节点的输出到循环节点的输入端口。双击循环节点,在「循环模式」中选择「使用数组循环」。此时系统自动识别上游传入的是数组,右侧会显示「循环数组:{{start.user_names}}」。注意:这个引用路径不能手敲,必须从右侧变量列表里点选,否则容易拼错字段名导致运行时报错。
勾选「启用索引变量」,这样循环体内就能用{{index}}获取当前轮次(从0开始)和{{item}}获取当前数组元素。
在循环体内逐项清洗数据
第一步:拖入「代码」节点到循环体内部,连接循环节点的输出端口。点击编辑,在Python代码框中粘贴:
```python
params = args.params
item = params['item']
# 去首尾空格 → 转小写 → 替换@为_ → 过滤纯空字符串
cleaned = item.strip().lower().replace('@', '_') if item.strip() else None
return {'cleaned_name': cleaned}
```
这一步做了四层清洗:先strip防空格干扰,再lower保证统一大小写,接着replace处理邮箱符号,最后用条件表达式直接筛掉空值。返回字典必须含key cleaned_name,否则下游节点取不到值。
累积清洗结果到变量
在代码节点后接一个「设置变量」节点。变量名填name_list,初始值设为空数组[]。更新方式选「追加」,值填{{code.cleaned_name}}。这里的关键是:只有当cleaned_name不为None时,追加才真正发生;若为None(即原项为空),则跳过不存——这比在代码里做if判断更简洁可靠。
注意:变量名必须全小写且不含下划线以外的符号,否则后续引用会失败。
退出循环后拼接最终结果
将循环节点的「结束」端口连到「结束节点」。在结束节点的输出配置中,输入表达式:{{set_variable.name_list | join('; ')}}。管道符join是内置过滤器,会把数组里所有非None元素用分号加空格拼成字符串。运行时输入原始数组,输出就是"lee; zhang_123; wang_456"。











