AttributeError:'表'对象没有属性' update_item' - DynamoDB v2 API

时间:2015-06-13 15:31:04

标签: python python-2.7 amazon-dynamodb boto botocore

我正在尝试使用以下代码有条件地更新DynamoDB中的项目:

from boto.dynamodb2.table import Table

conn = get_layer1_ddb_connection()
values_table = Table(table_name, connection=conn)
attrs = { 'values' : new_values,
          'version' : existing_item['version'] + 1}
condition_expression = 'version = :v'
values_table.update_item(table_name, key=customer_id, attribute_updates=attrs, condition_expression=condition_expression, expression_attribute_values={':v': existing_item['version'],}, return_values='ALL_OLD',)

其中,layer1连接的创建方式如下:

from boto.dynamodb2.layer1 import DynamoDBConnection

def get_layer1_ddb_connection(self):
    return DynamoDBConnection(region=self.region, aws_access_key_id=self.creds[CRED_ACCESS_KEY], aws_secret_access_key=self.creds[CRED_SECRET_KEY])

self.region属于RegionInfo类型,self.creds一直非常适合其他高级API调用。

2 个答案:

答案 0 :(得分:0)

如果我没有弄错,这可能是table.py来源的暗示。在私人_update_item()方法中,它实际上会调用conn.update_item

self.connection.update_item(self.table_name, raw_key, item_data, **kwargs)

所以也许尝试在连接而不是表上调用update_item(),看看是否有帮助。

答案 1 :(得分:0)

这对我有用:

nobs <- 2000
x <- cumsum(c(0, rnorm(nobs)/sqrt(nobs)))
dx <- x[-1] - x[-(nobs + 1)]