2016-12-23 39 views
1

我是新來dynamoDB並無法找到如何獲取特定項目的獨特價值材料dynamoDB獲取項目的獨特價值。我在dynamoDB有數據顯示如下:使用python

Item_1  | Item_2  |  Item_3 
---------------------------------------- 
value_1_1 | value_2_1 | value_3_1 
value_1_2 | value_2_2 | value_3_2 
value_1_3 | value_2_3 | value_3_3 
value_1_4 | value_2_4 | value_3_4 

我想列的所有唯一值ITEM_3

我的做法是如下:

import boto3 
dynamodb = boto3.resource('dynamodb') 
table = dynamodb.Table('women_kurta') 
i=1 
pricelist=[] 
while i<50: 
    data = table.get_item(Key={'id':i})# data.save() 
    pricelist+=[data['Item']['price']] 
    print i 
    i+=1 
print list(set(pricelist)) 

但它是非常緩慢並且效率不高。有沒有其他方法可以有效地做到這一點?

回答

3

未經測試的代碼。所以必要時調整它。

而是每次創建新的列表,只需添加它。你會看到很多數量級的速度。

pricelist.append(data['Item']['price']) 

使用列表理解進一步提高速度。這只是一個想法。嘗試理解並修復任何語法。

import boto3 
dynamodb = boto3.resource('dynamodb') 
table = dynamodb.Table('women_kurta') 
pricelist = [table.get_item(Key={'id':i})['Item']['price'] for i in xrange(50)] 
print list(set(pricelist))