3

我正在使用botoPython 中的库连接到 DynamoDB。以下代码一直对我有用:

import boto
key = 'abc'

secret = '123'
con = boto.connect_dynamodb(key,secret)
table = con.get_table('Table Name')
-- rest of code --

当我尝试连接到特定区域时,我可以正常连接,但是让表正常工作会引发错误:

import boto
from boto.ec2.connection import EC2Connection

key = 'abc'
secret = '123'
regions = EC2Connection(key,secret).get_all_regions() # some filtering after this line to remove unwanted entries
for r in regions:
  con = boto.connect_dynamodb(key,secret,region=r)
  table = con.get_table('Table Name') # throws the error below
  -- rest of code --

使用上面的第二个代码块,我得到一个ValueError: No JSON object could be decoded. 调用con.list_tables()显示了我在第一个代码块中查找的表,但是当我在第二个代码块中尝试它时会引发相同的错误。谁能帮我吗?

4

1 回答 1

5

在玩了之后,我发现以这种方式更改代码以进行连接是可行的:

import boto
from boto.ec2.connection import EC2Connection
from boto.dynamodb import connect_to_region

key = 'abc'
secret = '123'
regions = EC2Connection(key,secret).get_all_regions()
for r in regions:
  con = connect_to_region(aws_access_key_id=key,aws_secret_access_key=secret,region_name=r.name)
  table = con.get_table('Table Name') # no problem
  -- rest of code --
于 2012-06-19T14:06:35.107 回答