这与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
答案 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
填充存储空间,则应该按预期工作。