我正在尝试基于2件事更新Dynamo DB数据库中的现有项目:1)提取日期和2)项URL。但是,我收到“条件请求失败”错误。
我已经实现了以下代码;但是,该错误继续出现。
如果有帮助,我的主分区键是“ itemUuid(字符串)”(不使用主排序键)。日期格式为“ m / d / yyyy”。
if response['ResponseMetadata']['HTTPStatusCode'] == 200 :
table_page1Update.update_item(Key={'itemUuid' : str(item['itemUuid'])},
UpdateExpression = 'SET readSuccess = :readSuccess',
ConditionExpression = 'extractionDate = :extractionDate AND itemUrl = :itemUrl',
ExpressionAttributeValues={
':readSuccess' : 'OK',
':itemUrl' : 'http://url_of_item_in_db_field.com',
':extractionDate' : config.DATETIMEFOREXPORT
}
)
我希望与日期和itemUrl匹配的项目的readSuccess字段填充为“ OK”。
答案 0 :(得分:0)
发电机可能用错误的格式解释了,如果您尝试了以下操作(我将所有内容都设置为包括日期的字符串类型,因为日期在发电机中存储为字符串):
if response['ResponseMetadata']['HTTPStatusCode'] == 200 :
table_page1Update.update_item(Key={'itemUuid' : {'S' : str(item['itemUuid'])}},
UpdateExpression = 'SET readSuccess = :readSuccess',
ConditionExpression = 'extractionDate = :extractionDate AND itemUrl = :itemUrl',
ExpressionAttributeValues={
':readSuccess' : { 'S':'OK' },
':itemUrl' : { 'S':'http://url_of_item_in_db_field.com' },
':extractionDate' : { 'S':config.DATETIMEFOREXPORT }
}
)