【发布时间】:2018-08-05 12:23:22
【问题描述】:
是否可以将上一步中的所有字段作为 json 之类的集合访问,而不必在输入数据中显式设置每个字段?
希望截图说明了这个想法: https://www.screencast.com/t/TTSmUqz2auq
我的想法是我有一个步骤可以在谷歌表单中查找回复,我希望解析结果以将所有问题和答案显示到电子邮件中。
希望这是可能的
谢谢
【问题讨论】:
标签: zapier
是否可以将上一步中的所有字段作为 json 之类的集合访问,而不必在输入数据中显式设置每个字段?
希望截图说明了这个想法: https://www.screencast.com/t/TTSmUqz2auq
我的想法是我有一个步骤可以在谷歌表单中查找回复,我希望解析结果以将所有问题和答案显示到电子邮件中。
希望这是可能的
谢谢
【问题讨论】:
标签: zapier
David 来自 Zapier 平台团队。不幸的是,我相信你现在所描述的是不可能的。通常这很好用,因为用户只映射了几个值。最坏的情况是当你想要每一个价值时,这听起来像是你所面临的。将它们全部映射出来会很酷。我可以把它传递给团队!同时,您必须单击要在代码步骤中使用的所有内容。
如果您真的不想创建一堆变量,但您可以将它们全部映射到单个输入中,并使用 | 之类的分隔符将它们分隔开来(只要它没有出现在数据),很容易在代码步骤中进行拆分。
希望有帮助!
【讨论】:
最简单的解决方案是在输出对象中创建一个附加字段,该字段是输出的 JSON 字符串。在 Python 代码步骤中,它看起来像
import json
output = {'id': 123, 'hello': 'world'}
output['allfields'] = json.dumps(output)
或返回列表
import json
output = [{'id': 123, 'hello': 'world'},{'id': 456, 'bye': 'world'}]
for x in output:
x['allfields'] = json.dumps(output[output.index(x)])
现在您可以在步骤中使用单个值以及在代码步骤中使用的所有值(只需将它们从 JSON 转换)。同样的策略也适用于 Javascript(我只是在 Python 中工作)。
Zapier 结果
【讨论】:
默认情况下,可以在名为 input_data 的对象中访问字段。因此,获取值的一种非常简单的方法(在 Python 中)如下所示:
my_variable = input_data['actual_field_name_from_previous_step']
这与使用输入数据(可选)显式命名字段不同。如您所知,访问方式如下:
my_variable = input['your_label_for_field_from_previous_step']
这是Zapier docs中的流程描述。
希望这会有所帮助。
【讨论】: