如何在Zapier Code(Python)中正确返回输出字典?求助排查异常
解决Zapier Python代码输出无法被后续步骤获取的问题
看起来你在Zapier里处理Acuity Scheduling到Salesforce的英尺数据转换时,遇到了代码输出不被后续步骤识别的问题。我来帮你拆解下代码里的关键问题,以及给出能正常工作的修复方案:
1. 初始代码的核心问题
你的初始代码有两个明显的错误,会直接导致代码报错或者输出不符合预期:
- 直接使用
Feets变量,但没有从input_data字典里取值(正确应该用input_data['Feets']) - else分支里的
Inches变量完全没定义,运行时会触发NameError,导致代码直接失败
初始错误代码:
if " ' " in input_data['Feets']: output = {'Feets':Feets.split("'")[0],'Inches':Feets.split("'")[1]} else: output = {'Feets':Feets,'Inches':Inches}
2. 修复后的完整可运行代码
针对你的需求——把类似5'10或者6这种格式的Feets输入拆分成独立的Feets和Inches字段,修正后的代码应该是这样的:
# 先获取输入并去除首尾空格,避免格式干扰 feets_input = input_data['Feets'].strip() if "'" in feets_input: # 只拆分一次,避免输入里出现多个单引号的特殊情况 feets_part, inches_part = feets_input.split("'", 1) output = { 'Feets': feets_part.strip(), 'Inches': inches_part.strip() } else: # 如果没有单引号,说明只有英尺值,这里把Inches设为空字符串(你也可以改成'0',看Salesforce字段要求) output = { 'Feets': feets_input, 'Inches': '' }
3. 确保Zapier识别输出的关键注意点
- 必须返回
output字典:Zapier的Python代码步骤只会读取名为output的变量作为后续步骤的数据源,别写错变量名 - 避免代码截断/语法错误:你提到的更新后代码片段
input_data['Feet...是截断的,这会直接导致代码运行失败,没有任何输出 - 处理边界情况:比如输入带多余空格(比如
5 ' 10),用strip()能避免拆分出无效的空白字符 - 防KeyError:如果
Feets字段可能为空,建议改成input_data.get('Feets', ''),避免字段不存在时报错
4. 调试小技巧
如果还是拿不到输出,可以加日志打印来排查:
# 打印输入数据,确认是否拿到了正确的Feets值 print(f"Received input data: {input_data}")
然后去Zapier的运行日志里查看打印内容,确认输入是否符合你的预期。
内容的提问来源于stack exchange,提问作者Fares Alsyoufi
相关产品推荐
相关产品推荐

