为什么我用Zapier此代码时,我得到一个Runtime.MarshalError?(Why am

2019-09-26 08:49发布

下面的代码是给我:

Runtime.MarshalError:不能编组响应:{“是”}不是JSON序列化

from calendar import monthrange

def time_remaining_less_than_fourteen(year, month, day):
    a_year = int(input['year'])
    b_month = int(input['month'])
    c_day = int(input['day'])
    days_in_month = monthrange(int(a_year), int(b_month))[1]
    time_remaining = ""

    if (days_in_month - c_day) < 14:
        time_remaining = "No"
        return time_remaining

    else:
        time_remaining = "Yes"
        return time_remaining


output = {time_remaining_less_than_fourteen((input['year']), (input['month']), (input['day']))}

#print(output)

当我删除{...}它然后抛出:“统一”对象有没有属性“复制”

Answer 1:

大卫在这里,从Zapier平台团队。

每对文档 :

output :字典,这将是“返回值”这个代码的字典或列表。 如果你喜欢,你可以明确地返回早。 这必须是JSON序列化!

在你的情况下, output是一组:

>>> output = {'Yes'}
>>> type(output)
<class 'set'>
>>> json.dumps(output)
Object of type set is not JSON serializable

可序列化,需要一个字典(其中有键和值)。 改变你的最后一行,包括一键,它会工作像您期望:

#         \ here /
output = {'result': time_remaining_less_than_fourteen((input['year']), (input['month']), (input['day']))}


文章来源: Why am I getting a Runtime.MarshalError when using this code in Zapier?
标签: python zapier