读取DyanmoDb的table.scan()在python

时间:2017-02-01 04:57:16

标签: python amazon-dynamodb resultset

我是dynamoDB的新手,所以问题可能非常愚蠢。 我的目的和代码非常简单:

  1. 我连接到DynamoDB。
  2. 我希望从dynamoDB返回表格
  3. 我通过Table.scan()
  4. 读取所有值
  5. 但是当我尝试在步骤3中获得的返回结果集上运行循环而不是迭代通过结果集时,我失败并出现以下错误: TypeError:'ResultSet'对象没有属性'__getitem __'
  6. 这是我的代码:

         def fireQuery(tableName):
             table = getTable(tableName)
             try :
                  result = table.scan(Select="ALL_ATTRIBUTES")
                  for item in result['Items'] :  #<-- my code fails here
                      print(item)
    
         def getTable(tableName):
             try:
                  db = getDynamoDBConnection()
                  table = Table(tableName, connection=db)        
             except Exception as e:
                  print(tableName ," Table doesn't exist.", e)
             return table
    

    控制台上的例外:

    用户['项目']中的商品

    TypeError:'ResultSet'对象没有属性'__getitem __'

1 个答案:

答案 0 :(得分:0)

您只需要像这样迭代ResultSet:

def fireQuery(tableName):
    table = getTable(tableName)
    try :
         result_set = table.scan(Select="ALL_ATTRIBUTES")
         for item in result_set:
             print item['attributename']