可以使用 Zapier 中的代码实现交叉引用数据流吗?特别是从 2 个不同的数据流中生成 GSheets 中的行?

Posted

技术标签:

【中文标题】可以使用 Zapier 中的代码实现交叉引用数据流吗?特别是从 2 个不同的数据流中生成 GSheets 中的行?【英文标题】:Can a cross-reference data stream be achieved using Code in Zapier. Especifically to generate rows in GSheets from 2 different data streams? 【发布时间】:2017-08-09 13:09:35 【问题描述】:

我的目标是每周在 Basecamp 3 的多个项目中创建自动待办事项。

为此,我正在使用 Zapier 中的 Schedule 应用程序,它会触发在 google 电子表格上创建多行。然后这些行会触发 Basecamp 3 中特定项目中待办事项的创建。这些行的输入应该是:项目名称(用于搜索步骤)、待办事项文本。

我正在使用 Zapier 中的 Formatter 应用程序来尝试实现这一目标。在第一个 Formatter 操作中,我使用我们项目的所有名称的逗号分割文本并返回所有段。在第二个格式化程序上,我正在拆分所有待办事项文本的文本,并再次返回所有段。

格式化程序 1 输入(项目):AA、BB、CC、DD

格式化程序 2 输入(待办事项的文本):购买、使用、破坏、修复

现在,我试图实现的目标已在附图中说明。还说明了 zap(按原样)通过数据实现的目标。 Data Stream Diagrams

我们经常使用 Grasshopper,这是一款用于参数化建模和数据驱动设计的 Rhino 3D 插件。在蚱蜢中,这将被称为“交叉引用”数据流。这有可能在 Zapier 中使用 Code 来实现吗?如果是这样,我能得到一点帮助吗?

谢谢!

Zapier Zap GIF:https://drive.google.com/open?id=0B85_sQemABgmQVd6MENRd0NsNGc

【问题讨论】:

【参考方案1】:

我无权查看您的 Google 云端硬盘链接,但我想我明白了您要执行的操作的要点。

与其使用 Formatter,不如使用 Python,因为您可以更好地控制返回的内容。您可以使用 Python 的 itertools.product 来获取两个列表的每个组合。

# zapier runs in a vanilla python environment
# so you can import standard packages
import itertools 

letters = ['AA', 'BB', 'CC', 'DD']
actions = ['buy it', 'use it', 'break it', 'fix it']

combos = list(itertools.product(letters, actions)) 
# [('AA', 'buy it'), ('AA', 'use it'), ... ('DD', 'fix it')]

从那里,您需要按照操作步骤的预期格式化该列表(可能通过 ['code': c[0], 'action': c[1] for c in combos] 等列表理解并从代码步骤返回列表。

Zapier 的一个隐藏特性是,如果从代码步骤返回一个数组,zap 将为每个数组元素运行该操作。不过要小心,这意味着对于 zap 的每个输入,输出将运行 16 倍(这会很快消耗您的任务限制)。

希望这能让您走上正轨。如果有不清楚的地方请告诉我!

【讨论】:

谢谢!是的,对不起,我收到了通知。我已经公开了。对不起@xavdiv,我从来没有用 Python 编程过。我想我理解这个想法的逻辑,但你愿意解释一下我如何在 Zapier 中实现这一点吗?我不确定 zap 的输入数据部分会发生什么。而且,我怎样才能格式化这个列表?这应该在同一个代码步骤中完成吗?再次感谢! 代码应该是这样的吗? import itertools letters = ['AA', 'BB', 'CC', 'DD'] actions = ['buy it', 'use it', 'break it', 'fix it'] combo = list(itertools.product(letters, actions)) return = list 是的!您可以将其放入 python 代码步骤(因此会有触发器、代码和 google 表格),表格操作将每周运行 16 次。确保这适合您的任务使用!

以上是关于可以使用 Zapier 中的代码实现交叉引用数据流吗?特别是从 2 个不同的数据流中生成 GSheets 中的行?的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库中的交叉引用事实和维度

将相关数据添加到 Entity Framework 5 (Code-First) 中的交叉引用表

Zapier中的状态输出到用友的Java代码的代码

Zapier (JavaScript) 的代码中的 getHours() 和 getUTCHours

循环遍历自定义字段以填充 Zapier 中的动态字段

我可以交叉编译可选择使用 Java 8 中的类但编译为 Java 6 的 Java 代码吗?