使用Zapier中的Python代码返回多个值

问题描述 投票:0回答:1

我正在使用自定义代码-Python构建Zapier Zap,这是步骤之一。我需要此代码返回2个值以用于下游任务。

我可以轻松返回1个值-visits_startdatetime。我将vists_name添加到循环中并在最后返回,但是我只返回一个值。

    # 1. Convert the input data from a string to a array. 
visits_signedin = input['visits_signedin']
visits_signedin = list(visits_signedin.split(","))
visits_startdatetime = input_data['visits_startdatetime']
visits_startdatetime = list(visits_startdatetime.split(","))
visits_name = input['visits_name']
visits_name = list(visits_name.split(","))

#2. Loop through the array to find the first true value and return the startdatetime. If none is found, return nothing
for i in range(0, len(visits_signedin)):
    if visits_signedin[i] == "True":
        return {"visits_startdatetime": visits_startdatetime[i]} 
        return {visits_name": visits_name[i]}

return {"visits_startdatetime", "visits_name"}

我希望输出为“ 12-1-2019”和“瑜伽课”。实际输出为“ 12-1-2019”

python zapier
1个回答
0
投票

与其他每种编程语言一样,return终止函数执行并将返回值提供给其调用者。

return语句之后的任何代码都不会运行。

如果需要返回多个值,则可以返回包含两个条目的字典:

return {
    "visits_startdatetime": visits_startdatetime[i],
    "visits_name": visits_name[i]
}

# if no result
return {
    "visits_startdatetime": None,
    "visits_name": None
}

或者在您的情况下,更干净的方法是:

visits_startdatetime = None
visits_name = None
for i in range(0, len(visits_signedin)):
    if visits_signedin[i] == "True":
        visits_startdatetime = visits_startdatetime[i]
        visits_name = visits_name[i]

return {"visits_startdatetime": visits_startdatetime, "visits_name": visits_name}
© www.soinside.com 2019 - 2024. All rights reserved.