代码之家  ›  专栏  ›  技术社区  ›  DigitalMusicology

如何在Zapier代码(Python)中正确返回字典列表?

  •  3
  • DigitalMusicology  · 技术社区  · 7 年前

    Zapier代码文档表示,代码zap的输出可以是字典或字典列表(请参阅“数据变量”部分: https://zapier.com/help/code-python/ ).

    output = [{'Booking':'Shirt'},{'Booking':'Jeans'}]
    

    然而,代码的输出仅返回第一个字典:

    runtime_meta__duration_ms:  2
    runtime_meta__memory_used_mb:   22
    id: [redacted]
    Booking:    Shirt
    Fields with no value:
    runtime_meta__logs
    

    我做错了什么?谢谢!

    2 回复  |  直到 7 年前
        1
  •  3
  •   xavdid    7 年前

    这里是Zapier平台团队的David。返回数组的代码步骤大部分是未记录的(因为没有UI支持,而且可以看出这很混乱)功能。

    测试时,它只显示数组中的第一项。当它为real运行时,代码步骤之后的所有步骤都将针对数组中的每个项运行。任务历史记录将反映这一点

    因此,设置zap并打开它,它就会像你期望的那样工作。

    很抱歉给您带来困惑,如果您还有其他问题,请告诉我!

        2
  •  0
  •   Rayed    5 年前

    对于仍在寻找这个问题答案的人,以下是在Zapier中找到返回列表的内容。

    # first import and convert your input value to an array.
    # special note any line items imported into a python variable are converted to list format.
    my_items = input_data['my_CSV_string']
    my_list_of_items = my_items.split(",")
    
    # Create a new list array 
    my_new_list = []
    
    length = len(my_list_of_items)
    #Do all your computations    
    for i in range(length): 
        my_new_list.append(float(my_list_of_items[i])*1.5)
    
    # After completing any tasks you can return the list as follows, 
    # If you are using line items keep the list in its original format
    return {
        'my_processed_values': my_new_list,
        'original_values': my_list_of_items
    }
    
    # If you want to return it as a CSV "basically making the array flat"
    my_old_CSV_list= ','.join(map(str, my_list_of_items))
    my_new_CSV_list= ','.join(map(str, my_new_list))
    return {
        'my_processed_cvs_values': my_new_CSV_list,
        'original_values': my_list_of_items
    }
    

    希望这有帮助。我不是Python专家,但理论上,使用的列表越多,zap处理的时间就越长。尽量减少python处理时间。