nic*_*lee 5 python conditional put boto
我想在实际添加新项目之前让put_item检查是否存在具有相同HashKey的项目.
根据boto DynamoDB2文档,可以使用"Conditional Put"进行操作.
我尝试了以下命令,但没有运气.
connection.put_item('table',item={'locationId':'a1', 'timestamp': time.time()}, expected={'locationID':False})
Run Code Online (Sandbox Code Playgroud)
错误消息如下.
boto.exception.JSONResponseError: JSONResponseError: 400 Bad Request
{u'Message': u'Expected null', u'__type': u'com.amazon.coral.service#SerializationException'}
Run Code Online (Sandbox Code Playgroud)
有没有人有DynamoDBv2的条件放?
感谢所有提前.
您需要像这样编写它才能使语法正常工作.在任何地方都没有记录这是非常糟糕的.我只是遇到了完全相同的问题,并且在挖掘Java SDK文档时必须尝试50种不同的东西才能工作.请注意,如果您想要使用'Exists': True而不是,则需要给出一个值False.
connection.put_item(
'table',
item={
'locationId':{'S': 'a1'},
'timestamp': {'N': str(time.time())
},
expected={
'locationID': {'Exists': False}
}
#expected={
# 'locationID': {'Exists': True, 'Value': {'N': '0'}}
#}
)
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
编辑:帮助我使用语法足以使其在boto集成测试中工作和编码的问题