magento Zapier操作代码:Python input_data[]从列表中剥离空值

jxct1oxe  于 2023-10-19  发布在  Python
关注(0)|答案(2)|浏览(112)

我一直在尝试使用Python为Zapier创建自定义代码。
代码从Magento 2发票中提取两个列表。它们是行项目的详细信息,我们使用这些数据来更新库存系统中的库存。不幸的是,捆绑产品显示的儿童产品,我需要为儿童产品的数量为零,所以他们没有得到从股票以及删除。
我有逻辑所有排序设置库存项目数量为零,如果父是一个“捆绑”。
问题是拉输入数据。空值正在被丢弃。
例如,如果列表是null,null,null,bundle,结果就是bundle,如果列表是1,1,1,null,我最终得到的是1,1,1
有没有办法从输入数据字段中提取数据而不删除空值?
代码目前看起来是这样的。

# if the product is a child of a bundle then zero out the quantity or it will take extra stock

quantity = str(input_data["item_qty_invoiced"])
quantity_array = quantity.split(",")

cleaned_quantity_list = ""

product_type = str(input_data["item_product_type"])
product_type_array = product_type.split(",")

num_of_line_items = len(product_type_array)
index = 0

while index < num_of_line_items:

    if product_type_array[index] == "bundle":
        quantity_array[index] = 0

    index += 1

cleaned_quantity_list = ",".join(str(i) for i in quantity_array)    

return {'item_qty_invoiced': cleaned_quantity_list}

我还没有尝试过JavaScript,但是如果它是一个选项的话,我很乐意看看。

wgmfuz8q

wgmfuz8q1#

根据Zapier开发人员在2019年3月发布的answer,将输入强制转换为字符串的方式是固定的,并且没有计划解决这个问题。
一个建议的解决方法是:
最好的办法是做一个小的CLI应用程序来复制twitter的操作。然后你可以将输出设置为json字符串,我们不会碰它。我已经在几个地方这样做了,效果很好(除了在我们应该为你处理的时候必须自己与Twitter接口的额外负担)
不过,这确实挫败了使用Zapier的一半目的。

oymdgrw7

oymdgrw72#

使用一个原始的webhook可以让你做到这一点。

然后定义输入

然后使用json模块加载它

import json
raw = json.loads(input_data["raw"])
lang = raw["payload"]["lang"]

output = [{
  'lang': lang,}]

参见https://stackoverflow.com/a/55478782/1193450

相关问题