I am building a Zapier Zap using Custom Code - Python as one of the steps. I need this code to return 2 values for use in down stream tasks.
I can return 1 value easily - visits_startdatetime. I added vists_name to the loop and return at the end but I only get one value returned.
# 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"}
I expect the output to be "12-1-2019" and "Yoga Class". The actual output is "12-1-2019"
Like in every other programming language, return
terminates the function execution and provides the return value to its caller.
Any code after the return
statement will not run.
If you need to return multiple values, you can return a dictionary with two entries:
return {
"visits_startdatetime": visits_startdatetime[i],
"visits_name": visits_name[i]
}
# if no result
return {
"visits_startdatetime": None,
"visits_name": None
}
or in your case, a cleaner way to do it would be:
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}