无法使用python将项添加到dynamodb表

时间:2014-01-12 03:26:37

标签: python boto amazon-dynamodb

我试图使用boto库将项添加到dynamodb表。这似乎很简单。我的代码是:

import boto.dynamodb

c = boto.dynamodb.connect_to_region(aws_access_key_id="xxx",
                                    aws_secret_access_key="xxx",
                                    region_name="us-west-2")

users = c.get_table("users")

users.put_item(data={'username': 'johndoe', 
                     'first_name': 'John',
                     'last_name': 'Doe'})

但是,我收到以下错误:

'Table' object has no attribute 'put_item'

我认为我连接到数据库很好,并且users表很好(users变量的类型为:boto.dynamodb.table.Table)。所以,我不确定为什么它找不到put_item方法(我甚至检查了Table库中boto类的代码,并且它有put_item方法)。任何见解都将受到高度赞赏。

1 个答案:

答案 0 :(得分:5)

您正在使用DynamoDB v1界面。为此使用以下语法:

item_data = {
    'Body': 'http://url_to_lolcat.gif',
    'SentBy': 'User A',
    'ReceivedTime': '12/9/2011 11:36:03 PM',
}

item = table.new_item(
    # Our hash key is 'forum'
    hash_key='LOLCat Forum',
    # Our range key is 'subject'
    range_key='Check this out!',
    # This has the
    attrs=item_data
)

来源:An Introduction to boto’s DynamoDB interface

我建议迁移到DynamoDB v2界面:An Introduction to boto’s DynamoDB v2 interface

from boto.dynamodb2.table import Table

table = Table('users')

users.put_item(data={'username': 'johndoe', 
                     'first_name': 'John',
                     'last_name': 'Doe'})