2012-06-19 4 views
3

파이썬에서 boto 라이브러리를 사용하여 DynamoDB에 연결합니다. 다음 코드는 잘 나를 위해 일하고있다 :Amazon DynamoDB - 지역별 연결

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 -- 
: 나는 특정 지역에 연결하려고하면

import boto 
key = 'abc' 

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

가, 난 그냥 잘 연결할 수 있지만 작업 할 수있는 표를 얻는 것은 오류를 던지고있다

위 코드의 두 번째 블록을 사용하면 ValueError: No JSON object could be decoded이 표시됩니다. con.list_tables()을 호출하면 첫 번째 코드 블록에서 찾고있는 테이블이 표시되지만 두 번째 코드 블록에서 시도 할 때 동일한 오류가 발생합니다. 누구든지 나를 도울 수 있습니까?

답변

4

주위를 연주 후, 나는이 방식으로 연결하는 코드를 변경하면 작동 발견 :

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 --