如何使用list_pop?

How to use list_pop?

这与 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

来自 Zapier 平台团队的大卫。很难说出到底出了什么问题,但我最好的猜测是你的列表实际上并不是一个列表。您可以通过转到 https://store.zapier.com/api/records?secret=STSecretKey 快速验证这一点,它显示存储在数据库中的 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 来填充您的存储,它应该会按预期工作。