如何使用list_pop?

时间:2018-03-22 04:29:04

标签: zapier

这与Zapier Python代码有关。有人使用pop_list()函数作为StoreClient library的一部分成功吗?我坚持这个简单的程序。基本上我试图删除列表中存储在MyList.get中的第一项(' MyIDList')

非常感谢任何帮助。

以下是我的代码。请注意,如果我删除第二行,它将正常工作。我的清单肯定不是空的。

MyList= StoreClient('STSecretKey')

MyList.list_pop('MyIDList', location='head')

return {'FirstItem':MyList.get('MyIDList')[0]}

错误讯息:

Traceback (most recent call last):

  File "/tmp/tmpPToKk0/usercode.py", line 9, in the_function

    MyList.list_pop('MyIDList', location='head')

  File "/var/task/store_api.py", line 226, in list_pop

    return self.call('patch', BASE_URL, json=data)

  File "/var/task/store_api.py", line 61, in call

    raise StoreCallException(json['error'])

StoreCallException: list is empty

1 个答案:

答案 0 :(得分:0)

David来自Zapier平台团队。很难确切地说出错误是什么,但我最好的猜测是你的列表实际上并不是一个列表。您可以转到https://store.zapier.com/api/records?secret=STSecretKey快速验证这一点,{{3}}显示存储在数据库中的JSON。如果它是正确的,它将如下所示:

{
  "MyIDList": {
    "list": [
      1,
      2,
      3
    ]
  }
}

为了生成上述内容,我运行了以下代码:

store = StoreClient('davidkey')

store.list_push('MyIDList', 1)
store.list_push('MyIDList', 2)
store.list_push('MyIDList', 3)

popped = store.list_pop('j', location='head')  # got 1
accessed = store.get('j')[0]  # got error

您会注意到最后一行为我生成了错误。鉴于它适用于你(但从列表中弹出并不是),我猜你有一个0的密钥,其中包含数据。如果您确保使用list_push填充存储空间,则应该按预期工作。