Zapier发送Python JSON字典并跳过空值

时间:2019-04-02 08:19:12

标签: zapier

从Limo任何地方的触发器,我都在我的node.js代码操作中获取值。假设我们从触发器获取以下值:

null,the four seasons hotel;

Zapier仅发送代码中的四个季节的酒店。 Zapier中有没有一种方法可以获取rawJSON并将其解析为代码?

From Limo anywhere trigger, I am getting the values in my node.js code action. If first value is null then from the inputData, I get only "The four seasons hotel"

我的代码:

    let rows = "";
    const totalRecords = firstNames.length;
    const toLocations = inputData.to_location.split(",");
    const firstNames = inputData.first_name.split(",");
    const lastNames = inputData.last_name.split(",");
    const pickupDates = inputData.pickup_date.split(",");
    const fromLocations = inputData.from_location.split(",");

    for(let i = 0; i < totalRecords; i++){
       rows += `${firstNames[i]} ${lastNames[i]} ${fromLocations[i]} ${toLocations[i]} ${pickupDates[i]}`;
       if(i !== (totalRecords - 1)){
          rows += ",";
       }
    }

    return {
       rows: rows
    };

1 个答案:

答案 0 :(得分:1)

以下是上述问题的复杂解决方案:

  1. 在Zapier中单独创建一个“ Catch Raw Webhook”。 setup of catch raw webhook
  2. 使用上面#1中的Webhook URL,并将其添加为现有Limo Anywhere触发器上的Webhook操作。该webhook操作将在“ raw”参数下将json作为post发送。选择自定义请求,则方法为POST,数据传递为yes。 custom request

  3. 在webhook触发器之后添加代码操作以解析Zapier中的Python词典字符串:

import json, ast
output = {'res': json.dumps(ast.literal_eval(input_data["raw"]))}
  1. 现在,这将为您提供与Javascript兼容的适当JSON,从这里开始您可以处理数据。

我必须在#3中使用python,因为原始JSON仅与Python兼容,并且看起来如下:

{u'due_date': u'2019-03-22T00:00:00', u'terms': u'due_upon_receipt'}