我是dynamoDB的新手,无法找到有关如何获取特定项的唯一值的材料。我在dynamoDB中有一个数据,如下所示:
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))
但它非常慢且效率不高。有没有其他方法可以有效地做到这一点?
答案 0 :(得分: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))