我试图使用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方法)。任何见解都将受到高度赞赏。
答案 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'})