我正在尝试使用boto3 python库为dynamodb表执行批量写项目。该表同时具有哈希键和范围键。当我对另一个只有散列键的表执行同样的操作时,它工作得很好。我想知道在执行批量写项目操作时,如何同时添加散列和范围键。
import boto3
from boto3.dynamodb.conditions import Attr,Key
dynamodb = boto3.resource('dynamodb', 'us-east-2')
table = dynamodb.Table('edc_test')
scan = table.scan(
#ProjectionExpression='#k',
ProjectionExpression='resource_id',
#ProjectionExpression='version_id',
FilterExpression=Attr('Health.New version - Veracity unavailable').eq("A new dataset is available but IDQ rules are not generated yet")
)
items=scan['Items']
print('length',str(len(items)))
print(items)
def lambda_handler(event, context):
with table.batch_writer() as batch:
for each in scan['Items']:
batch.delete_item(Key=each)
发布于 2020-06-01 11:26:18
ProjectionExpression='version_id,resource_id',
FilterExpression=Attr('Health.New version - Veracity unavailable').eq("A new dataset is available but IDQ rules are not generated yet")
#ExpressionAttributeNames={
# '#k': 'name'
#}
)
items=scan['Items']
print('length',str(len(items)))
print(items)
#response = table.table.delete_item(Key={resource_id:1})
with table.batch_writer() as batch:
#for each in scan['Items']:
# batch.delete_item(Key=each)
for each in scan['Items']:
#batch.delete_item(Key={'version_id': each['version_id']})
batch.delete_item(Key={'resource_id': each['resource_id'], 'version_id': each['version_id']})
将排序关键字包含在扫描投影表达式中,并将其包含在删除批次项中,它可以工作。
https://stackoverflow.com/questions/62129643
复制相似问题