【问题标题】:Zapier Code - Python KeyError when accessing input_data Key with no ValueZapier 代码 - 访问没有值的 input_data 键时出现 Python KeyError
【发布时间】:2019-04-23 10:56:40
【问题描述】:

我正在使用 Zapier 代码步骤来格式化多条数据,以便以后在我的多步骤 Zap 中使用。这个问题的奇怪之处在于我的代码步骤通过了测试。我的怀疑是,当我传递到 input_data 字典中的一条数据在上一步中没有任何值时,它会失败。对于可能包含或不包含值的可选表单字段,通常会出现这种情况。

我的任务历史记录中出现 KeyError,随后 Zapier 不断关闭我的 Zap。

我做错了吗?或者这是 Zapier Code 处理没有价值的 input_data 键的方式中的一个错误?

这是我的代码:

gender = input_data['gender']
renewalDate = input_data['renewalDate']
dateOfBirth = input_data['dateOfBirth']
createdOn = input_data['createdOn']
registrationDate = input_data['registrationDate']
fullName = input_data['fullName']

nameArray = fullName.split(" ")
firstName = nameArray[0]
lastName = nameArray[-1]

def format_date(d):
    if len(d) > 10:
        formatted = d[:10]
        return formatted
    else:
        return None

if gender == '1':
    gender = 'Not set'
elif gender == '2':
    gender = 'Male'
elif gender == '3':
    gender = 'Female'
elif gender == '4':
    gender = 'Other'
else:
    gender = 'Rather not say'

renewalDate = format_date(renewalDate)
dateOfBirth = format_date(dateOfBirth)
createdOn = format_date(dateOfBirth)
registrationDate = format_date(registrationDate)

output = [{
    'gender': gender,
    'renewalDate': renewalDate,
    'dateOfBirth': dateOfBirth,
    'createdOn': createdOn,
    'registrationDate': registrationDate,
    'firstName': firstName,
    'lastName': lastName
}]

Here is Zapier reporting the error in task history

【问题讨论】:

    标签: zapier


    【解决方案1】:

    在 Zapier 中使用 Python 代码模块时,您为 input_data 变量提供的键值对将转换为 Python dictionary object。您收到的错误是尝试从不存在的 input_data 字典中检索密钥的结果。文档中注明:

    d[key]:
    用 key key 返回 d 的项目。如果键不在地图中,则引发 KeyError。

    我建议使用 d.get(key) 方法从 input_data 字典中检索值。

    get(key[, default]):
    如果 key 在 字典,否则默认。如果没有给出默认值,则默认为 无,因此此方法永远不会引发 KeyError。

    这很方便,因为如果找不到匹配的键,它不会返回错误,而是简单地返回None,或者如果找不到键d.get(key, default),您可以指定默认返回值。您可以在上面提供的链接中阅读有关它的更多信息。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-04-09
      • 1970-01-01
      • 2019-05-12
      • 1970-01-01
      • 2017-01-06
      • 2017-06-09
      • 2020-09-20
      • 2018-08-05
      • 2017-12-06
      相关资源
      最近更新 更多