Power Automate:如何在items()函数中使用变量获取列表列值
问题场景
- 已将SharePoint列的内部名称
T_x002d_CCE_x002d_E存入字符串变量Column_Name - 获取列表项后,在「应用到每一个」循环中:
- 硬编码列名时:
items('Apply to each')?['T_x002d_CCE_x002d_E']能正常获取布尔列值 - 使用变量时:
items('Apply to each')?[variables('Column_Name')]无法得到正确结果
- 硬编码列名时:
可行解决办法
Power Automate中直接用变量作为键访问对象属性时,默认语法可能不生效,试试这几个方法:
- JSON转换法(最推荐)
将列表项转换为JSON对象后,再通过变量取值:json(items('Apply to each'))[variables('Column_Name')] - XPath解析法(适配复杂数据结构)
先将列表项转为XML格式,再用XPath定位目标列:xpath(xml(json(concat('{"root":', items('Apply to each'), '}'))), concat('//root/', variables('Column_Name'), '/text()'))[0] - 简化语法尝试(仅适用于列必存在的场景)
移除可选链式调用符号?,直接调用:items('Apply to each')[variables('Column_Name')]
必做验证步骤
- 确认变量
Column_Name的取值完全匹配SharePoint列的内部名称(可通过列表列设置页面URL中的Field=参数确认,注意保留_x002d_这类转义字符) - 在循环内添加「组合」操作,输出
variables('Column_Name')和items('Apply to each')的完整内容,检查目标列名是否存在于返回的JSON结构中
内容的提问来源于stack exchange,提问作者Marc
相关产品推荐
相关产品推荐

