在 python 中读取 DynamoDb table.scan() 返回的结果集时代码中断

Code breakes while reading resultset returned by DyanmoDb's table.scan() in python

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

  1. 我连接到 DynamoDB。
  2. 我从 dynamoDB
  3. 得到了想要的 Table
  4. 我通过 Table.scan()
  5. 读取所有值
  6. 但是当我尝试 运行 对在步骤 3 中获得的返回结果集进行循环而不是遍历结果集时,我失败并出现以下错误: TypeError: 'ResultSet' 对象没有属性 '__getitem__'

这是我的代码:

     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

控制台异常:

用户中的项目['Items'] :

TypeError: 'ResultSet' 对象没有属性 '__getitem__'

您只需要像这样迭代结果集:

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