コードmemo
- 入っているカラムは以下3つ
- testid → パーティションキー
- testvalue → 更新したい値
- testflag → インデックスのパーティションキー
testflag = 1
の場合のtestvalueを値を+1して更新したい
import boto3
dynamodb = boto3.client('dynamodb')
table_name = '【テーブル名】'
index_name = 'testflag-index'
def get_value_fromdynamodb():
condition_expression = 'testflag = :val'
expression_attribute_values = {':val': {'N': '1'}}
response = dynamodb.query(
TableName=table_name,
IndexName=index_name,
KeyConditionExpression=condition_expression,
ExpressionAttributeValues=expression_attribute_values
)
items = response['Items']
return items
def update_dynamodb(items):
for item in items:
incremented_value = int(item['testvalue']['N']) + 1
update_expression = 'SET testvalue = :val'
expression_attribute_values = {':val': {'N': str(incremented_value)}}
dynamodb.update_item(
TableName=table_name,
Key={'testid': item['testid']},
UpdateExpression=update_expression,
ExpressionAttributeValues=expression_attribute_values
)
if __name__ == "__main__":
items = get_value_fromdynamodb()
for item in items:
print(item['testvalue'])
update_dynamodb(items)
コメント