在 python 中读取 DynamoDb table.scan() 返回的结果集时代码中断
Code breakes while reading resultset returned by DyanmoDb's table.scan() in python
我是 dynamoDB 的新手,所以这个问题可能很愚蠢。
我的目的和代码很简单:
- 我连接到 DynamoDB。
- 我从 dynamoDB
得到了想要的 Table
- 我通过 Table.scan()
读取所有值
- 但是当我尝试 运行 对在步骤 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']
我是 dynamoDB 的新手,所以这个问题可能很愚蠢。 我的目的和代码很简单:
- 我连接到 DynamoDB。
- 我从 dynamoDB 得到了想要的 Table
- 我通过 Table.scan() 读取所有值
- 但是当我尝试 运行 对在步骤 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']