0
正如我在Complete scan of dynamoDb with boto3中所解釋的那樣,我構建了一個解決方案,使用某種條件對DynamoDB表進行全面掃描。這是我的代碼:DynamoDB掃描中的無限循環
def dynamo_scan(table_name, params_dict):
dynamo_table = boto3.resource('dynamodb').Table(table_name)
response = do_scan(dynamo_table, params_dict)
results = response['Items']
while response.get('LastEvaluatedKey'):
print "Iterating"
print response.get('LastEvaluatedKey')
params_dict['ExclusiveStartKey'] = response['LastEvaluatedKey']
response = do_scan(dynamo_table, params_dict)
results.extend(response['Items'])
return results
def do_scan(dynamo_table, params_dict):
return dynamo_table.scan(**params_dict)
但是,當代碼執行時,它會進入無限循環。這是LastEvaluatedKey的每次迭代的輸出:
{u'my_id': u'1698', u'identity': u'2017075002312'}
{u'my_id': u'1883', u'identity': u'85500397082900013318629'}
{u'my_id': u'1698', u'identity': u'2017075002312'}
{u'my_id': u'1883', u'identity': u'85500397082900013318629'}
{u'my_id': u'1698', u'identity': u'2017075002312'}
{u'my_id': u'1883', u'identity': u'85500397082900013318629'}
而且它通過這兩對繼續循環。
編輯:
我添加了方法do_scan。
是的,我說我的方法do_scan。我認爲和你的解決方案是一樣的,但我每次都陷入無限循環。 –
數據庫中有多少數據? – Lexxxxx